こんにちは(このメッセージは朝・昼・夜で変わります)。
こういった条件判断は次のように書きます。
<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: