こんにちは(このメッセージは朝・昼・夜で変わります)。
こういった条件判断は次のように書きます。
<p> <?php date_default_timezone_set('Asia/Tokyo'); $h = date("H"); if ($h < 10) { echo "おはようございます"; } elseif ($h < 18) { echo "こんにちは"; } else { echo "こんばんは"; } ?> </p>
if
は「もしも……」,elseif
は「そうでくて,もしも……」,else
は「そうでなければ……」という意味です。
C や C++ や Java や JavaScript では else if
,Perl や Ruby では elsif
と綴りますが,PHP では elseif
です。ただし,PHP では else if
と書いても同じ動作をします。
上のプログラムは下のように中括弧 { }
を省略して書いてもかまいません。
<p> <?php date_default_timezone_set('Asia/Tokyo'); $h = date("H"); if ($h < 10) echo "おはようございます"; elseif ($h < 18) echo "こんにちは"; else echo "こんばんは"; ?> </p>
if
,elseif
,else
が複数の命令を含む場合は,上のような中括弧 {...}
が必須になります。
画像も加えてみましょう。あらかじめ朝・昼・夜の画像 asa.jpg,hiru.jpg,yoru.jpg を用意しておきます。
<p> <?php date_default_timezone_set('Asia/Tokyo'); $h = date("H"); if ($h < 10) { echo '<img src="asa.jpg" alt="朝"> おはようございます'; } elseif ($h < 18) { echo '<img src="hiru.jpg" alt="昼"> こんにちは'; } else { echo '<img src="yoru.jpg" alt="夜"> こんばんは'; } ?> </p>
このように,echo
の文字列の中にさらに "
が入る場合は,echo "...";
の代わりに echo '...';
を使うのが一つの手です。もう一つの手は,内側の "
を \"
と書きます:
<p> <?php date_default_timezone_set('Asia/Tokyo'); $h = date("H"); if ($h < 10) { echo "<img src=\"asa.jpg\" alt=\"朝\"> おはようございます"; } elseif ($h < 18) { echo "<img src=\"hiru.jpg\" alt=\"昼\"> こんにちは"; } else { echo "<img src=\"yoru.jpg\" alt=\"夜\"> こんばんは"; } ?> </p>
(祝)東京オリンピック!
<p><?php date_default_timezone_set('Asia/Tokyo'); $s = mktime(0,0,0,7,24,2020) - time(); if ($s > 0) { $d = (int)($s / (60 * 60 * 24)); echo "東京オリンピック(2020年7月24日)まであと $d 日です。"; } else { echo "(祝)東京オリンピック!"; } ?></p>
mktime(時, 分, 秒, 月, 日, 年)
は1970年元旦からの秒数を求めます。(int)
は小数点以下を切り捨てて整数に直すことを意味します。/
は割り算,%
は剰余(割った余り)です。
"あと $h 時間 $m 分 $s 秒"
のように "..."
の中には $h
などの変数をそのまま書き込むことができます。ただし,$h
の直後にスペースがないと誤動作することがありますので,スペースを入れたくないときは
"あと{$h}時間{$m}分{$s}秒"
のように {...}
で囲んでおきます。なお,'...'
の中には変数を書き込めません。
Last modified: