elseif文
複数の条件で分岐させたいときはelseif文を使います。
- <?php
- $time=date("G"); //24時間表示の時刻
- if($time<6 || $time>=18){
- print "夜です";
- }
- elseif($time>=9){
- print "昼です";
- }
- elseif($tiem>=6){
- print "夜です";
- }
- ?>
この構文はC言語には直接ない構文ですね。
まず0~6時、18~24時ならば「夜です」と表示させ次に、$timeがこれ以外の数字だった場合、つまり6時~18時のときを考えます。次の分岐で、9時よりも大きいときは「昼です」と表示するようにします。さらに違った場合は、次の分岐で「夜です」と表示されるわけですねフフフ
論理演算子
論理演算子についてです。
- <?php
- $time=date("G"); //24時間単位の時間(0~23)
- if($time<6 or $time >=18){
- print "<p>夜です</p>";
- }else{
- print "<p>昼間です</p>";
- }
- ?>
このようにorを用いることにより「$time<6」または「$time>=18」がTRUEならばif文以下を実行という様に論理演算子orが用いられます。
or は || でも書き換え可能です。というか私はC言語から入ったので || を用いると思います。
「かつ」を表すのには and または && を使います。
因みにこの文は論理演算子を使用しない文にも書き換え可能です。
- <?php
- $time=date("G");
- if($time<6){
- print "夜です";
- }
- else{
- if($time)>=18{
- print "夜です";
- }else{
- print "昼です";
- }
- ?>
と、とても長くなり読みにくくなるので論理演算子を使いましょう。これはPHPに限ったことではなくコードはなるべく短く読みやすくすることを心がけましょう。
比較演算子
-
<?php
-
$a=2; //数字の2
-
$b="2"; //文字列の2
-
//$aが$bに等しいかどうか
-
if($a==$b){
-
print "<p>そうです</p>";
-
}else{
-
print "<p>違います</p>";
-
}
-
//$aが$bと等しく型も同じか
-
if($a===$b){
-
print "<p>そうです</p>";
-
}else{
-
print "<p>違います</p>";
-
}
-
?>
という風にPHPでは型まで同じかどうか比較ができるそうです。この例で言うと、$aは数字の2ですが$bは文字列としての2ですね。==の比較は同じ2なのでTRUEとなりますが、===の比較では型まで比較されるのでFALSEとなります。