PHP入門
PHPはプログラミング言語のひとつです。
PHPはコンソール上でも簡単に実行できますが、主としてウェブサーバ上で実行されるスクリプトとして使われています。
決まりきった静的なHTMLに限らず、ユーザのアクションによって柔軟で動的なHTMLをサーバ側で生成したり、サーバ上のデータベースにアクセスしたりと、サーバ側であれこれするプログラミング言語です。
入門ということで、PHPとローカルのウェブサーバ環境、そしてテキストエディタだけを使って解説します。
PHPの使い方
ローカルで適切な環境が整っていれば、次のコードを書いたファイルを拡張子「php」で保存して、ブラウザでアクセスすればPHPが実行されます。
<!DOCTYPE html>PHP
ページのタイトルが「PHP」となりましたか?
このようにPHPではHTMLを普通に記述できるのです。これではHTMLと変わらないので、もう少しPHPらしくしてみましょう。
<?php $a='PHP'; ?> <!DOCTYPE html><?php echo $a; ?>
このように書いても、先ほどと同じように表示されます。
「$a」はPHPの変数です。「echo」は出力するという命令文です。
PHPではこのように、プログラミング技法を「<?php ... ?>」の中に記述することができるのです。
つまり、PHPではHTMLの中でプログラミングの技法を使うことができるプログラミング言語なのです。言い方を変えれば、PHPというスクリプトの中にHTMLを書けるのです。
もちろん、HTMLを出力しない純粋なPHPスクリプトでも問題ありません。ちなみにその場合は最後の閉じタグの「?>」は省略できます。「?>」以降に無駄な改行などの出力があると、律儀に処理されてしまうからです。
サーバの設定によって拡張子が「php」以外のファイルをPHPとして処理することもできます。
例えば拡張子の無いURLへのアクセスをPHPで処理するという設定もできますし、PHP以外の言語で処理するという設定もできます。
PHPでやること
HTMLの場合、ウェブサーバは要求されたウェブページのデータをそのまま送りますが、PHPの場合にはPHPが処理をして出力した結果を渡すことになります。
PHPはHTMLに限らず、普通のテキストやJSONというデータなどを返すこともできますし、サーバ上の処理だけして何も返さなくても構いません。
PHPの特徴は、サーバ上で動くスクリプトだということです。つまり、サーバ上のファイルを読み込んだりデータベースにアクセスしたりできるということです。
また、HTMLのフォームを使ったりURLパラメータを使えば、ユーザ側からのデータをサーバ側で受け取ることができます。
PHPによるデータベースへのアクセスなどは別ページで解説します。このページではPHPの入門ということで、PHPプログラミングの基本を解説します。
変数
<?php $a=10; echo $a; // 10 echo "
"; // HTMLの改行 $b="変数"; echo $b; // 変数 ?>
htmlタグなどは書いていませんが、普通の文書としてブラウザで普通に表示されます。
なお、PHPのコメントは「//」とスラッシュを二回書くとそれ以降の行がコメントになります。複数行のコメントは「/*」と「*/」で囲みます。
サンプルを見てみると、「10<br>変数」と出力され、ブラウザによってbrタグが改行されて表示されています。
ここで重要なのは、ソースを見てもPHPのコードが書かれていないということです。コードはサーバで処理されるので、ブラウザが受け取るのは出力結果だけだからです。
さて、このようにPHPでの変数は変数名の前に「$」を付ける決まりになっています。また、型などの宣言は必要なく、いきなり代入できます。
<?php $a="a";$b="b"; echo $a.$b; // ab echo "c".'de'; // cde echo "$a$b"; // ab echo '$a$b'; // $a$b ?>
PHPでは、文字列として連結したい場合に「.」を使います。
また、文字列はダブルクォーテーションかシングルクォーテーションで囲む必要があります。ダブルかシングルかの違いは、中身に変数がある場合に表れます。ダブルは変数が展開されて内容が表示されますが、シングルは変数展開されずにそのままドル記号と変数名が表示されます。
配列、if文、for文、関数
PHPの配列、if文、for文、関数を実際に見てみましょう。
<?php function jihanki($coin,$button){ $price=[150,160,170,180]; if($button >= 4){ return 'ボタンは0から3番目までしかありません。'; }else if($coin < $price[$button]){ return 'コインが足りません。'; } return "${button}番目のジュースが出てきました。"; } for($i=0;$i<5;$i++){ echo jihanki(170,$i).'
'; } ?>
12行目では、変数の展開時に変数名がはっきりしないので{}で囲んで明確にしています。サンプルでは英字と日本語なのでどこまでが変数なのかわかりますが、例えば「$x='c'」なら「"ab${x}de"」と書かなければはっきりしません。この場合PHPでは{}を使って明確にする必要があります。
配列はPHPのバージョンによっては[]が使えないかもしれません。その場合は次のように書きます。
<?php $price=array(150,160,170,180); ?>
arrayというのは配列という意味です。このようにバージョンによって使える書き方や使える関数などがあるので、もし何か上手くいかないプログラムがあったらその可能性も考えましょう。
if文やfor文、関数なども他のプログラミング言語と特に変わらないようなのでわかりやすいです。