どんなPHP文でも必ず従わなければいけない文法があります。
その初歩をまとめたメモです。
PHPと認識させる
PHP文であることを示すために、PHP文はすべて「<?php」と「?>」で囲まれている必要があります。
<?php echo "これはPHP文です"; ?>
文末には必ず「;」(セミコロン)を置く。
<?php echo "セミコロンが無いとエラーを起こします"; ?>
PHP文中にコメントを挿入したいときは「//」(スラッシュ2つ)を使います。
<?php //これはコメントになります。 echo "これはコメントになりません"; ?>
コメントされた行は行末までPHP文として処理されないので、どのような処理なのかをメモしておくときなどに使います。
出力のための関数 echo
冒頭から使用している「echo」という単語はPHPの出力を行う関数です。
主にHTMLの文として出力するために使われます。
<?php echo "これは文字列です"; echo "<a>HTMLタグを使うこともできます</a>"; ?>
文字列を表現するときは「”」(ダブルクオート)もしくは「’」(シングルクオート)で文字列を挟むようにして表記します。
<?php echo "これは文字列です"; //結果:これは文字列です echo 'これも文字列です'; //結果:これも文字列です ?>
PHPはプログラミング言語なので計算結果を出力することもできます。
<?php echo 3 + 1; //結果:4 (足し算) echo 3 - 1; //結果:2 (引き算) echo 3 * 2; //結果:6 (掛け算) echo 3 / 2; //結果:1.5(割り算) echo 3 % 2; //結果:1 (割り算の余り) ?>
文字列と数値
PHPには文字列と数値などのデータの種類があります。
文字列は「”」で挟まれた文字情報「”Hello world!”」や「”<a>”」など、数値は「”」で囲まれていない数値情報「1」や「3.141592」などです。
文字列と数値はechoしたときに違った結果を出力します。
<?php echo "3 + 1"; //結果:3 + 1(文字列) echo 3 + 1; //結果:4(数値) ?>
変数
変数とは文字列や数値などを入れておく入れ物です。
「3」という数値を「x」という変数に入れておきたいときは「$」(ドル)を「x」の前につけて次のように書きます。
<?php $x = 3; echo $x; //結果:3 ?>
文字列も変数に入れることができます。
<?php $text = "これは文字です"; echo $text; //結果:これは文字です ?>
「=」(イコール)は左側の変数へ右側の数値や文字を入れるための記号です。
基本となる変数名の付け方
<?php $name = "田中太郎"; // ○:名前を意味するnameと言う単語 $first_name = "太郎"; // ○:2語以上の場合はアンダーバーで分ける ?>
「田中太郎」という名前を入れるための変数名として「name」を用いています。
これであれば意味のある英単語を使っているので、誰にでもわかりやすくなります。
「太郎」は名前の中の名になります。
英語で「名」は「first name」と2語になるため単語間を「_」(アンダーバー)で区切っています。
使えない変数の代表例
<?php $1name = "太郎"; // ×:数字から始まる変数名は使えない $namae = "田中太郎"; // △:エラーにはならないが、ローマ字読みは使わない $名前 = "田中太郎"; // △:全角文字はどこでエラーが出るかわからないので使わない ?>
変数名を数字で始めることはできません。
必ずエラーとなるので、数字は2文字目以降に使うようにします。
「namae」などのローマ字表記も色々なところで見かけるかもしれませんが、適切ではありません。
慣習的な意味合いも強いのですが、どの国の人でも解読できるようにプログラムは基本的に英語をベースに書きます。
日本語(全角文字)を使った変数もプラグラムには適していません。
全角文字は半角文字の組み合わせで作られています。
どこでエラーが出るかわからないので、プログラムでは全角文字を使用しません。
変数の計算と省略形
<?php $x = 1; // 変数を定義 $x = $x + 5; // $xに5を足したものを新たに$xとする $x += 5; // 上記の省略形(同じ処理) $x = $x - 5; // 引き算の場合 $x -= 5; // 上記の省略形(同じ処理) $x = $x * 5; // 掛け算の場合 $x *= 5; // 上記の省略形(同じ処理) $x = $x / 5; // 割り算の場合 $x /= 5; // 上記の省略形(同じ処理) $x = $x % 5; // 割り算したときの余りを求める場合 $x %= 5; // 上記の省略形(同じ処理) ?>
よく使われる処理の中に、変数自体に何か計算をして、その結果を同じ変数へ代入するという物があります。
<?php $x = 1; // 変数を定義 echo "現在のxは".$x."です。<br>"; // 変数を表示 $x = $x + 5; // $xに5を足したものを新たに$xとする echo "現在のxは".$x."です。<br>"; // 変数を表示 $x = 1; // 変数をリセット echo "現在のxは".$x."です。<br>"; // 変数を表示 $x += 5; // 省略形(同じ処理) echo "現在のxは".$x."です。<br>"; // 変数を表示 ?>
更に省略出来る場合
<?php $x = $x + 1; // 1を足して$xを書き換える $x += 1; // 省略形 $x ++; // 1を足す場合は更に省略できる $x = $x - 1; // 1を引いて$xを書き換える $x -= 1; // 省略形 $x --; // 1を引く場合は更に省略できる ?>
計算自体が「1を足す」か「1を引く」場合には更に省略することができます。
実際のコード中では省略形の形がよく使われるので、覚えておきましょう。
変数の文字列操作と文字列の接続
<?php $lang = "PHP"; echo "このページでは".$lang."を使っています"; //結果: このページではPHPを使っています ?>
変数と文字列をつなげるときは間に「.」(ドット)をつけます。
文字列中に数値を入れた変数を表示させるときもこの方法を使います。
<?php $lang = "PHP"; echo "このページでは $lang を使っています"; //結果: このページではPHPを使っています ?>
上記は「.」が無くても変数を表示してくれます。
文字列として「”」を使用している場合は中に記述されている変数を表示してくれます。
<?php $lang = "PHP"; echo 'このページでは'.$lang.'を使っています'; //結果: このページではPHPを使っています ?>
文字列として「’」を使用している場合は「.」を使わなければエラーとなります。
<?php $lang = "PHP"; $rank = "入門編"; echo "現在 ".$lang.$rank." を学習中です。<br>"; echo '現在 '.$lang.$rank.' を学習中です。<br>'; echo "現在 $lang$rank を学習中です。"; ?>
文字列の連結を省略して書く方法
<?php $text = "PHP"; echo $text ."<br>"; $text .= "入門編"; echo $text; ?>
数値計算と同じように変数に文字列を足すときは省略して書くことができます。
特殊記号(エスケープシーケンス)
<?php echo "「\"」ダブルクオートはエスケープする"; ?>
エスケープとはPHP文として評価したくないときに使うおまじないです。
PHP文ではエスケープ記号は「\」(円マーク、バックスラッシュ)なので、文字列として表したい特殊記号の前に「\」をつけて、「\”」のように書きます。
エスケープ記号が必要なのはPHP文の中で特殊な役割を示すものです。
\n | 改行(LF) | \r | 改行(CR) |
\t | 水平タブ | \v | 垂直タブ |
\” | ダブルクオート | \’ | シングルクオート |
\(, \) | パーレン(丸括弧) | \[, \] | ブラケット(角括弧) |
\\ | ¥記号(バックスラッシュ) | \$ | $記号 |
引用符の中の引用符
<?php echo '文字列中の"引用符"<br>'; echo "文字列中の'引用符'<br>"; ?>
文字列中で使用したい引用符(”、’)と逆の引用符を用いると文字列の中で引用符を使うことができます。
ダブルクオートを使いたいときは、文字列をシングルクオートで始め、シングルクオートを使いたいときは、文字列をダブルクオートで始めます。
「”」と「’」の違い
<?php $name = "田中太郎"; echo "登録されている名前は\n $name です。<br>"; echo '登録されている名前は\n $name です。<br>'; ?>
ダブルクオート(“)で書かれた文字列は変数展開という処理をしてくれる文字列で、中にある変数や特殊文字の内容を変換して出力できます。
シングルクオート(‘)で書かれた文字列は変数や特殊文字をそのまま出力します。