基本構成
最も基本的な方法は以下の通り
- 通常のHTMLの中にスクリプトを書く
- ファイル名の拡張子は、通常は
.php
スクリプトを外部ファイルにするには、require(-once)、include(-once)を使う。
WordPressの場合は、HTML中に直接スクリプトを書けないようなので、WordPressで準備された方法で外部ファイルを読み込む。
通常の方法でのPHPの例を新しいタブで示す。
スクリプトの開始と終了
一般的に、PHPは<?php
で開始し、?>
で終了する。
1 |
<?php echo "Hello"; ?> |
複数行に渡る場合は、一行目に<?php
、最終行に?>
を配置する。
1 2 3 4 5 |
<?php 文1; 文2; ..... ?> |
コメント
一行コメントは//
か#
。複数行コメントは/*
で開始し、*/
で終了。
1 2 3 4 5 6 7 8 |
// 一行コメントの例(1) # 一行コメントの例(2) /* この間は コメントになる */ |
行の終了は';'
各行は必ず';'
で終了させる。行の解釈が適切になされるなら、行の途中で改行してもよい。
1 2 3 4 5 |
print "こんにちは<br />"; print "WordPressでの PHP実行例です"; ?> |
変数
変数は'$'
で始める
1 2 3 4 5 6 |
<?php $x = 2; $y = 3; $z = $x + $y; print $z; ?> |
変数宣言や型宣言は不要
コード中で値を代入した時点で変数が確保され、値によって型が決まる。また、値を代入するたびに、その値に応じた型に変化する。
1 2 3 4 5 6 7 8 9 10 11 |
<?php $str = " <?php $x = "HAL"; print($x); $x = 8999; print($x + 1); ?> 実行結果: HAL9000 |
“可変変数”がある
変数名自体を他の変数に格納して、参照することができる。
通常の変数に文字列で他の変数名を代入し、参照時に'$$'
とすることで、変数内容の文字列を変数名として、その内容が返される。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $variable = "value"; <?php $variable = "value"; $variable_variable = "variable"; print($variable_variable); print "<br />"; print($$variable_variable); ?> 実行結果: variable value |
参照代入が可能
通常の代入は値がコピーされて渡されるが、=&
で代入すると参照渡しとなる。
1 2 3 4 5 6 7 8 9 10 11 |
<?php $original = 1; $copy_val = $original; $copy_ref =& $original; $original = 2; print("original = {$original}\n"); print("copy_val = {$copy_val}\n"); print("copy_ref = {$copy_ref}\n"); ?> |
この例では$originalの内容を各変数に代入した後に値を変更しており、値代入した$copy_valの値は代入前と変わらず、参照代入した$copy_refの値は$originalと同じ値に変化する。
1 2 3 4 5 6 |
% php test.php original = 2 copy_val = 1 copy_ref = 2 % |
文字列
文字列の結合
文字列の結合にはドット(.
)を使う。変数、文字列リテラルのほか、数値も文字列に変換されて結合される。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $str = " <?php $x = "HAL"; print($x); <?php $place = "東京"; $year = 1964; print($place . "オリンピック開催は" . $year . "年"); ?> 実行結果: 東京オリンピック開催は1964年 |
変数内での文字列展開
ダブルクォート("
)やヒアドキュメント内では、変数は文字列として展開される。
1 2 3 4 5 6 7 8 |
<?php $place = "東京"; $year = 1964; print("$place オリンピック開催は $year 年"); ?> 実行結果: 東京 オリンピック開催は 1964 年 |
変数前後の半角スペースは必須で、出力にも半角スペースが入る。これを回避するために、変数を{}
で囲むことができる。
1 2 3 4 5 6 7 8 |
<?php $place = "東京"; $year = 1964; print("{$place}オリンピック開催は{$year}年"); ?> 実行結果: 東京オリンピック開催は1964年 |
なお、シングルクォート(‘)を用いた場合は、変数としてではなく文字列表現として扱われる。
1 2 3 4 5 6 7 8 |
<?php $place = "東京"; $year = 1964; print('{$place}オリンピック開催は{$year}年'); ?> 実行結果: {$place}オリンピック開催は{$year}年 |
ヒアドキュメント
<<<
によって、指定した文字列(ID)の間が連続した文字列として解釈される。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $str = <<<HEREDOC いろはにほへと ちりぬるを わかよたれそ つねならむ HEREDOC; print($str); ?> 実行結果; いろはにほへと ちりぬるを わかよたれそ つねならむ |
ヒアドキュメントの開始IDや終了IDの書くのにスペースやタブを入れてはいけない、終了ID行には';'
以外書いてはいけない、などの条件があるので注意。
なお、ソースコードの改行位置で完全に連続せずに空白が入っているが、これはダブルクォートで文字列を分割した場合でも同じようになるので、WordPressの仕様か?
特殊文字やエスケープする文字の扱い
ダブルクォート(“)、シングルクォート(‘)、ヒアドキュメントの違い。
変数展開 | 特殊文字の扱い | エスケープする文字 | |
ダブルクォート(“) | される | 特殊文字 | $ \ “ |
シングルクォート(‘) | されない | そのまま | ‘ |
ヒアドキュメント | される | 特殊文字 | なし |