最近学んだPHPの構文についての備忘録。
侍エンジニア塾での受講が本番を迎える前段階で独学で勉強中。
PHPはHTMLに埋め込める
<?php で始まって ?>の間にPHPの文を書く決まりになっている。
echoというのは表示せよ、という命令。命令文の最後は;(コロン)を付けると文の終端ということを意味して解釈してくれる。
<!DOCTYPE html> <html lang="ja"> <body> <p>hello php! <?php echo "hello world!"; ?></p> <?php echo "hello from the php echo<br>"; ?> </body> </html>
表示
PHPでの変数と定数の扱い方
変数名の先頭に$マークを付けると変数になる。=を用いて値の代入が出来るのは他の言語と同じ仕様。
変数名に型を書かずとも、自動的に判別してくれる。文字列を入れることもできるし、数値を代入することもできる。
<?php //変数への代入 //文字列の代入 $msg = "ハローワールド!"; echo $msg; echo "<br>"; //数字の代入 $num = 109; echo $num; //var_dumpを使うとデータ型を知ることができる echo "<br>■var_dumpを使うとデータ型を知ることができる<br>"; var_dump($msg); //定数 定数名は大文字を使う echo "<br>■定数 定数名は大文字を使う<br>"; define("FUJISAN", "3776"); echo FUJISAN; //自動的に定義される定数 echo "<br>■自動的に定義される定数<br>"; var_dump(__LINE__); echo "<br>";//行数 var_dump(__FILE__); echo "<br>";//ファイル名 var_dump(__DIR__); echo "<br>";// ディレクトリ名 ?>
表示
PHPでの整数や小数点の演算、特別な演算子
//数値の演算 echo "<br>■演算<br>"; $x = 10 % 3; // あまり $y = 30.2 / 4; var_dump($x); echo "<br>"; var_dump($y); echo "<br>"; //単項演算子 echo "<br>■単項演算子++<br>"; $z = 5; $z++; var_dump($z); echo "<br>■単項演算子--<br>"; $z--; var_dump($z); //変数と代入を伴う演算子 echo "<br>■変数と代入を伴う演算子<br>"; $x = 5; $x += 2; var_dump($x);
表示
文字列の扱い、”と’で囲った場合の違い
//文字列 // ""で囲った場合は特殊文字(\n, \t)や変数の展開ができる // ''で囲った場合はすべて文字列として扱われる echo "<br>■文字列の扱い方、ダブルクオーテーションとシングルクオーテーションの違い<br>"; $name = "pikachu"; $s1 = "hello $name!\nhello again!<br>"; $s2 = 'hello {$name}!\nhello again!<br>'; $s3 = 'hello ${name}!\nhello again!<br>'; $s4 = "hello {$name}!\nhello again!<br>"; $s5 = "hello ${name}!\nhello again!<br>"; echo $s1; echo $s2; echo $s3; echo $s4; echo $s5; //文字列の連結 echo "<br>■文字列の連結<br>"; $s = "hello " . "world"; var_dump($s);
表示
PHPのif文を使った条件分岐
//if条件分岐 echo "<br>■if条件分岐<br>"; $score = rand(1,100); //ランダム関数で1~100の整数を返す echo $score . " : "; if ($score > 80) { //scoreが80より大きければGreatを表示 echo "great!"; } elseif ($score > 60) { echo "good!"; } else { echo "so so"; }
表示
条件判定の演算子各種
条件を判定するための比較演算子には以下のものがある
==
=== 値とデータの型まで比較
!=
!==
論理演算子には以下のものがある
and &&, or ||, !
falseになるのには条件式の他に以下の値がある
文字列: 空、”0″
数値: 0、0.0
論理値:false
配列:要素の数が0
null
逆に変数に値が入っていればtrueになる。
echo "<br>■真になるケース<br>"; $x = 5; if ($x) { echo "真"; } else { echo "偽"; } echo "<br>■偽になるケース<br>"; $x = 0; if ($x) { echo "真"; } else { echo "偽"; }
表示
三項演算子を使った条件式の書き方
//三項演算子 //真だったら$aを代入、 偽だったら$bを代入せよ、という命令 echo "<br>■三項演算子<br>"; $a = 10; $b = 20; $max = ($a > $b) ? $a : $b; echo $max; //同じ意味↓ echo "<br>■ifを使った書き方<br>"; if ($a > $b) { $max = $a; } else { $max = $b; } echo $max;
表示
PHPのswitchを使った条件分岐
switch文はあらかじめ決められた値を持つときの場合分けとして使う。C言語と同じ。
各caseにおいてbreak;は必ず記述。またどの条件にも当てはまらないdefault:も記述すること。
//switch条件分岐 echo "<br>■switchを使った条件分岐<br>"; $signal = "yellow"; switch ($signal) { case "red": echo "赤"; break; case "blue": echo "青"; break; case "yellow": echo "黄色"; break; default: echo "なし"; break; }
表示
PHPでのループ処理
ループ処理はwhileとfor文を使うことができる。条件式が真の間はループするような挙動になる。
do whileは先に一回だけ処理をしてから条件式の判定に入るので、普通のwhileと使い分けをすること。breakやcontinueもC言語に似てる。
//ループ処理 // while echo "<br>■whileループ処理<br>"; $i = 0; while ($i < 10) { echo $i; $i++; } // do ... while echo "<br>■do whileループ処理<br>"; $i = 0; do { echo $i; $i++; } while($i < 10); //forループ echo "<br>■forループ処理<br>"; for ($i = 0; $i < 10; $i++){ echo $i; } // breakはループを抜ける echo "<br>■breakはループを抜ける<br>"; for ($i = 0; $i < 10; $i++){ if ($i == 5) break; echo $i; } // continueは、次のループへ進む echo "<br>■continueは、次のループへ進む<br>"; for ($i = 0; $i < 10; $i++){ if ($i == 5) continue; echo $i; }
表示
PHPでの配列の扱い方
配列の宣言の仕方や使い方はちょっとコツが必要。C言語とは異なり、キーとバリューがあることから連想配列や辞書型のような使い方となる。
//配列の宣言の仕方その1 echo "<br>■配列の宣言の仕方<br>"; //キーと値で構成する echo "<br>■その1キーと値で構成する<br>"; $tel = array( "tokyo" => "03", "saitama" => "04", "chiba" => "05", ); var_dump($tel); echo "<br>"; var_dump($tel["tokyo"]); echo "<br>"; echo $tel["saitama"]; echo "<br>"; //配列の宣言の仕方その2 //array()を使わずに[]を使ってもよい echo "<br>■array()を使わずに[]を使ってもよい<br>"; $zaiko = [ "apple" => 200, "orange" => 300, "pine" =>50, ]; var_dump($zaiko); echo "<br>"; //配列に値を追加する echo "<br>■配列にキーと値を追加する<br>"; $zaiko["grape"] = 33; var_dump($zaiko); echo "<br>"; //配列への代入 echo "<br>■配列への代入<br>"; $zaiko["orange"] = 100; var_dump($zaiko); echo "<br>"; //キー無しで配列を作ると添字0, 1, 2...で指定できる echo "<br>■キー無しで配列を作ると添字0, 1, 2...で指定できる<br>"; $colors = ["red", "blue", "pink"]; echo $colors[0];echo "<br>"; echo $colors[1];echo "<br>"; echo $colors[2];echo "<br>";
表示
配列をforeachで回して扱う
foreachを使えば、配列を簡単に値を取り出したり代入したりができるようになる。
//foreach echo "<br>■foreachを使うと配列のキーとバリューを1個1個取り出せる<br>"; foreach ($zaiko as $key => $value) { echo "($key) $value "; } echo "<br>■foreachの書き方その2<br>"; foreach ($colors as $value) { echo "$value "; }
表示
{}の代わりに:コロンを使う
PHPならではの記述方法。
<? //コロン構文 echo "<br>■コロン構文<br>"; foreach ($colors as $value) : echo "$value "; endforeach; ?> <br>■コロン構文を使うとHTMLへの埋め込みのときにスッキリ書ける<br> <ul> <?php foreach ($colors as $value) : ?> <li><?php echo "$value "; ?></li> <?php endforeach; ?> </ul> <br>■でもこっちの方が好きかな<br> <ul> <?php foreach ($colors as $value) { ?> <li><?php echo "$value "; ?></li> <?php } ?> </ul>
表示