最近学んだ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>
表示







