第6章 演算子と制御文
1.演算子
PHPには、他のプログラミング言語と同じくたくさんの演算子が存在します。 そして、他の言語に実装されているだいたいの演算子が、PHPでも問題なく使うことができます。
1-1.代数演算子
数値を用いた四則演算、余りを求める剰余と負の数を表すマイナス記号がこれにあたります。 このあたりはC言語やJavaといったメジャーな言語と大きな差はないため、あえて詳しい解説は省きます。 少しだけ違うのは、加算を表す「+」演算子です。 通常の言語と違い、PHPではこの演算子を使って文字列の連結ができてしまいます。 また、C言語だとエラーを起こしそうな異なる型の間での計算も、PHPならば問題なく行えます。 下の例の場合、文字列は数字に、int型はfloat型に変換されます。
<?php
$a = 10;
$b = 3.141592;
$c = "3rd_hensu";
echo "$a<br>";
echo "$b<br>";
echo "$c<br>";
$d=$c+$a+$b;
echo "$d<br>";
?>
1-2.論理演算子
TRUE or FALSEで条件式を判断する論理演算子も、PHPでは問題なく用いることができます。 主にPerlと同じで、C言語やJavaで馴染みの深い(A && B) や(A || B)も使えますし、 (A and B) や (A or B)という形でも大丈夫です。
1-3.その他の演算子
上の2つの演算子の他にも、PHPには比較演算子や文字列演算子などの、様々な種類の演算子があります。 全てを覚えていなければならないという訳でもないのですが、知っていると役に立つ演算子もいくつかあります。 マニュアルを読んで、自分で探してみてください。 PHPマニュアル 演算子 (PHPのマニュアルは、筆者的には非常に読みやすいと思います)
2.制御文
if文やswitch文といった条件分岐文や、for文やwhile文などのループ文も、PHPでは用いることができます。 その他の言語と用いる上で大きな差はありません。
2-1.条件分岐文
if文
if、else if、else文とも、他の言語と大きく異なる点はありません。
()の内側に条件式を記述し、それを満たす場合{}の内側に記述された処理を実行します。
<?php
$x=1;
if($x==1){
echo "\$x=1<br>";
}else if($x==2){
echo "\$x=2<br>";
}else{
echo "\$x=unknown<br>";
}
?>
switch文
特に大きく異なる点はありません。
()の内側に指定された変数の値を読み取り、該当するcaseの処理を実行します。
<?php
$x=1;
switch($x){
case 1:
echo "\$x=1<br>";
break;
case 2:
echo "\$x=2<br>";
break;
case 3:
echo "\$x=3<br>";
break;
default:
echo
"\$x=unknown<br>";
break;
}
?>
2-2.ループ文
for文
他の言語と、特に異なる用い方はしません。
()の内側に
(ループ開始時に評価される式;ループの終了を評価する式;1ループごとに評価される式)
を記述し、2つめの式を満たす限り{}の内側に記述した処理を繰り返します。
<?php
for($x=0;$x<10;$x++){
echo "$x<br>";
}
?>
while文
こちらも他の言語と、大きな差異はありません。
()の内側の式をループの一行目開始前に毎回評価し、満たし続ける限りループを繰り返します。
<?php
$x=0;
while($x<10){
echo "No.$x<br>";
$x++;
}
?>
do-while文
特に他の言語と同じ感覚で用いる事ができます。
基本的にはwhile文と同じですが、条件式の評価がループの最後に来ています。
そのため、必ず1回はループ内の処理が実行されます。
<?php
$x=0;
do{
if($x%2==0){
echo "$x<br>";
}
$x++;
}while($x<10)
?>