PHPの基本ルール
PHPは、様々なところで使用されていています。ECサイトやブログにも使用されていて、よく利用されているWordPressにもPHPが使用されているため、PHPが使えるとカスタマイズしやすいです。
開発環境を整える
PHPはHTMLやJavascriptと違い、ブラウザ上で動かないためサーバにあげないと確認することができません。
PCに開発環境を作る
PHPを動作させるには、テスト環境として自分のPCにWebサーバをインストールする必要があります。まずは、XAMPPというソフトウェアをインストールしてみましょう。
XAMPPは、Apacheや様々なソフトウエアのパックになっています。インストールすることでWebページを確認することができます。
レンタルサーバーを使用する
レンタルサーバーを契約している方は、サーバーにアップロードすることで確認できます。さくらインターネットやエックスサーバーなどの安いプランで問題ありません。
下記のURLからダウンロードです。
https://www.apachefriends.org/jp/download.html
基本
<?php //実行内容を記載 ?> //時刻表示の場合 <?php $time = date("H時i分s秒"); ?> <p>今の時刻は<?php echo $time; ?>です。</p>
HTMLのタグとは違いPHPは、<?php //実行内容 ?> でかこって表示させます。HTMLと見分けがつきますが、ブラウザからソースで確認するとPHPのタグは表示されません。HTMLのみで構成された表示になります。
PHPの変数
PHPの変数は、頭に「$」がつきます。
(例)$name = “田中”;
$nameという変数に、田中が代入されます。
変数とは
プログラムを書いた場合、文字や数字データなど値をさまざまなところで使用します。変数は、その使用する値を一時的に保存し、いつでも取り出すことができます。
コメントアウト
コメントを使ってプログラムの説明文を入れることがあります。
また、プログラム修正で書き換える場合など一時的にコメントアウトする時に使用する場合があります。
- コメントアウトが1行の場合・・・//コメントアウトの内容
- コメンアウトが複数行の場合・・・/* コメントアウトの内容 */
文字列のルール
文字列は、「”」または「’」で囲みますが、数字は囲みません。
数字を文字列として表示したい場合は別です。また、変数も囲みません。
//文字列の場合 $name = "田中"; echo $name; //数字の場合 $number = 2000; echo $number;
文字を「.」で連結することができます。
$today = date("Y年m月d日"); $time = date("H時i分s秒"); echo "今日は、" . $today . "で時間は" . $time . "です。"; //{}で書き出した場合 print( "今日は、{$today }で時間は{$time}です。");
条件分岐
Javascriptや他のプログラムでも同じように条件分岐があります。
if文の形は、Javascriptとほぼ同じです。
if ( 条件 ){ 条件が合致した場合の実行処理 }
追加で条件を増やした場合と、どれとも合致しない場合のif文はこちらです。
if ( 条件A ){ 条件が合致した場合の実行処理 }elseif ( 条件B ){ 条件が合致した場合の実行処理 }else{ 条件A、Bのどちらも合致しない場合の実行処理 }
例として採点プログラムを作成しました。
<h1>テストの採点</h1> <form name="" action="result.php" method="post"> <p>■氏名</p> <p><input type="text" name="name" ></p> <p>■点数</p> <p><input type="text" name="points" ></p> <input type="submit" type="採点"> </form>
<?php $price_with_tax = $_REQUEST["price"] * 1.10; ?> <p>税込金額は<?php print(htmlspecialchars($price_with_tax,ENT_QUOTES))?>です。</p> <?php $name_date = $_REQUEST["name"]; if($_REQUEST["points"] >= 80){ $points_date = "大変よくできました"; }elseif($_REQUEST["points"] >= 60){ $points_date = "よくできました"; }else{ $points_date = "頑張りましょう"; } ?> <p>■氏名</p> <p><?php print(htmlspecialchars($name_date,ENT_QUOTES)) ?></p> <p>■点数</p> <p><?php print(htmlspecialchars($points_date,ENT_QUOTES)) ?></p>
条件もtrueやfalseのような真偽値の結果を表示させることもできます。
$_REQUEST[“points”] >= 70 で70点以上の場合は、trueになります。
69点以下の場合は、falseになります。
<?php $is_error = false; if( $_REQUEST["points"] >= 70){ print( "合格" ); $is_error = true; } if( !$is_error ){ print( "不合格" ); } ?>
変数名に「!」をつけると、真偽値が逆になります。
ture なら false、falseならtureになります。
複合条件の場合
条件が「A かつ B」や「AまたはB」などの場合に使用します。
年齢が18歳以上かつ血液型がA型の場合、if ( $age >= 18 && $blood == “A”)になります。
A かつ Bの場合・・・A && B
例:if ( $age >= 18 && $blood == “A”) 18歳以上かつA型
AまたはBの場合・・・A || B
例:if ( $blood == “o” || $blood == “AB”) O型またはAB型
配列(変数配列)
一つの変数に対して値は一つしか代入することができません。
配列を使うことで、変数をまとめて管理することができます。
配列は、「array」を使用し、複数選択を行う場合などに使います。
<?php $names = array("後藤","鈴木","内村"); //関数を追加したい時に使います。 array_push($names,"松本","陣内" ); ?> <p><?php print($names[0]); ?></p> <p><?php print($names[1]); ?></p> <p><?php print($names[2]); ?></p> <p><?php print($names[3]); ?></p> <p><?php print($names[4]); ?></p>
実行すると、名前が順番に表示されます。
ループ処理
同じ処理を繰り返し行いたい時に使います。
ループ処理は、「foreach」を使います。
foreach( 配列名 as 変数名 ){ //繰り返し行う処理 }
<form name="sports_check" action="result.php" method="post"> <h1>アンケート</h1> <p>あんたの好きなスポーツは?</p> <?php $sports = array("サッカー","野球","ラグビー","水泳","卓球","柔道"); foreach( $sports as $competition){ ?> <input type="checkbox" name="sports_check[]" value="<?php print(htmlspecialchars($competition, ENT_QUOTES)); ?>"> <?php echo(htmlspecialchars($competition, ENT_QUOTES)); ?><br> <?php } ?> <input type="submit" value="送信"> </form>
「array」という配列を使うことで、変数「sports_check」に複数の値を代入することができます。
チェックの結果として「result.php」を作成します。
<p>あなたが選んだスポーツはこれです。</p> <p> <?php echo( htmlspecialchars( implode("、", $_REQUEST["sports_check"]), ENT_QUOTES)); ?> </p>
for文のループ処理
for ( カウントの初期値 ; ループ処理条件 ; カウントの増加処理){ // 実行処理 }
<?php for($i = 1; $i <= 15; $i++){ echo $i,"、"; } ?>
実行すると、数字が1から15まで並んで表示されます。
変数は「i」がよく使われますが「e」でも問題ありません。
「$i = 1」1の数字から、「$i <= 15」15繰り返し、「$i++」1づつ追加する。
おさらい
PHPの基本は理解しやすいと思います。