STEP 2
ここでは、基本的な文字の表し方や、変数への長文の入れ方などを学びます。
4PHPの変数と
文字列の表現
文字列を扱うには'(シングルクオート)と''(ダブルクオート)の2つの方法によるやり方があります。echo を使ってそれぞれの扱いかたを比べてみると違いがわかります。
シングルクオート/サンプルコード①
<?php
$str = 'シングルクオート';
echo 'PHP学習: $str';
?>
実行結果①
PHP学習: $str
$のついた変数のまま表示されているのがわかります。シングルクオートでは変数と文字列を同時に表示しません。ダブルクオート/サンプルコード②
<?php
$str = 'ダブルクオート';
echo ”PHP学習: $str”;
?>
実行結果②
PHP学習: ダブルクオート
一方、ダブルクオートでは変数と文字列を同時に表示することができます。変数の文字列と密着してつなげたいときは{}で変数を囲むことで表示されます。
{変数}で文字列表示/サンプルコード③
<?php
$str = 'abc';
echo 'PHP学習: {$str}def';
?>
実行結果③
PHP学習: abcdef
{}をつけることで、変数と解釈して実行されます。変数を文字列の中に埋め込むときは{}を「必ずつける」とおぼえておいてもよいです。5改行コード他を
つかおう
文章の表示において改行させたいときは特別なコードを使います。改行コードと呼ばれる「\n」を使います。他にも改行やタブなど文字列として表現できないコードには「\」から始まる文字があり、それを「特殊文字」といいます。また、「\」から始まる記述方法を「エスケープシーケンス」といいます。
特殊文字
\n 改行、LF(ラインフィード)
\r 改行、CR(キャリッジリターン)
\t 水平タブ
\v 垂直タブ
\f フォームフィールド
\\ バックスラッシュ
\$ ドル記号
\' シングルクォーテーション(引用符)
\" ダブルクオーテーション(2重引用符)
重要なこととして、変数の中でエスケープシーケンスはダブルクオーテーション「"」囲まれた文字列の中でしか使えません。
サンプルコード
<?php
echo 'ここでタブ!\tそして改行!\nこの通りですね!!';
?>
実行結果
ここでタブ! そして改行!
この通りですね!!
この通りですね!!
6長文を変数へ:
ヒアドキュメント
変数に文字列を入れる場合、長い文章を入れることもあります。そんなときは「ヒアドキュメント」と呼ばれる変数への文字列の入れ方を使います。サンプルコード
<?php
$motto = '無理せずムダなくお得に勉強しよう';
$message = <<< EOD
変数に
ながーーーーい文字列を
格納できます!ヒアドキュメントすごい!えらい!
しかし、プログラムの勉強は基礎がとても多いです。私のモットーは{$motto}です。
EOD;
echo $message;
?>
実行結果
変数に
ながーーーーい文字列を
格納できます!ヒアドキュメントすごい!えらい!
しかし、プログラムの勉強は基礎がとても多いです。私のモットーは無理せずムダなくお得に勉強しようです。
※ブラウザアクセスからページのソースを表示してください。
ながーーーーい文字列を
格納できます!ヒアドキュメントすごい!えらい!
しかし、プログラムの勉強は基礎がとても多いです。私のモットーは無理せずムダなくお得に勉強しようです。
※ブラウザアクセスからページのソースを表示してください。
<<< EOD から EOD; で囲われた範囲を文字列として変数へセットすることができます。
「EOD」は End Of Document の略です。ヒアドキュメントとは変数に長文を読み込むにあたって、[<<<]をつけて大文字のアルファベットではさめば何でもOKです。大文字のアルファベットは前後で同じでなければなりません。
しかし、End Of Messageの「EOM」、End Of Fileの「EOF」などがよく見られます。お作法的にここらあたりを使っておきましょう。オリジナルは避けたほうがいいかもしれません。
ヒアドキュメントの中に{$motto}のような形で変数の埋め込みもできます。
(補足)ナウドキュメント
ナウドキュメントというのもあります。文章中の変数を使うときに、変数を表示したくないときもあります。その場合にはこちらを使ったりします。サンプルコード
<?php
$motto = '無理せずムダなく勉強しましょう';
$str = <<< 'EOD'
これがナウドキュメントの使い方。
おしりのはEODはシングルクオートで囲まない。
変数$mottoは展開されずそのまま表示される。
EOD;
echo $str;
?>
実行結果
これがナウドキュメントの使い方。
おしりのはEODはシングルクオートで囲まない。
変数$mottoは展開されずそのまま表示される。
※ブラウザアクセスからページのソースを表示してください。
おしりのはEODはシングルクオートで囲まない。
変数$mottoは展開されずそのまま表示される。
※ブラウザアクセスからページのソースを表示してください。
7数値の
計算
数値計算についてです。算術演算子、代入演算子、インクリメント、デクリメントというものがあります。「 + - * / % 」
よくみる普通の計算です。算術演算子といいます。全部で5種あります。「加算(足し算)」「減算(引き算)」「乗算(掛け算)」「除算(割り算)」「剰余(あまり)」です。
$kasan = 10 + 2; // →12
$genzan = 10 – 2; // →8
$jozan = 10 * 2; // →20
$josan = 10 / 2; // →8
$joyo = 10 % 3; // →1
「 += 」
代入演算子といって、こんな形で計算もできます。$a = 5;
$a +=1; // $a = $a + 1 と同じ → 6になります
$a = 5;
$b -=1; // $b = $b - 1 と同じ → 4になります
「 ++ 」
インクリメント といいます。変数に+1するこんな書き方もあります。ループ文の中などでよく使います。$c = 1;
$c++; // $c = $c + 1 と同じ → 2になります
「 -- 」
デクリメント といいます。変数に-1するこんな書き方もあります。$c = 2;
$c--; // $c = $c + 1 と同じ → 1になります
★なぜ同じことにこんなに違う書き方があるの?
プログラムではコードの読みやすさ、書きやすさは生産性に影響します。自分の書きやすさ、または他人からみての読みやすさはダイレクトに開発時間を短縮できます。よって使い分けられています。数ヶ月で何十万コードを書くプログラマにとっては、大きく結果が変わってきます。少ない時間でたくさんの処理を作ることができるということです。