1

現在、論理的に機能しているように見えるいくつかのPHPコードに取り組んでいます

$tod = date("G");
if($tod >= 5 && $tod <= 11)      { $work = "Morning's"; }
elseif($tod >= 12 && $tod <= 17) { $work = "Afternoon's"; }
else                               $work = "Evening's";

$dw = date( "l");

if($work = "Morning's")       { $pre = "Morning"; }
elseif($work = "Afternoon's") { $pre = "Afternoon"; }
else                            $pre = "Evening";

何らかの理由で、$work をエコーするときに $tod 変数を各範囲内の何かに増加または設定しようとすると、$tod の設定に関係なく、常に「朝」が返されます。if..elseif..else ステートメントに何か問題がありますか? ページをロードしてもエラーは発生しません。

助けてくれてありがとう

4

2 に答える 2

0

これを試してみてください。

  $tod = date("G");
    if($tod >= 5 && $tod <= 11) {$work = "Morning's";}
    elseif($tod >= 12 && $tod <= 17) {$work = "Afternoon's";}
    else $work = "Evening's";
    $dw = date( "l");
    if($work == "Morning's"){$pre = "Morning";}
    elseif($work == "Afternoon's"){$pre = "Afternoon";}
    else $pre = "Evening";
于 2012-09-27T15:42:23.910 に答える
0

それを短くするためだけに(そしてスペルを修正する:複数形はw / oです'):

$pre = "Evening";
in_array( date( "G" ), range( 5, 11 ) )  AND $pre  = "Morning";
in_array( date( "G" ), range( 12, 17 ) ) AND $pre = "Afternoon";
$work = "{$pre}s";
于 2012-09-27T16:21:58.867 に答える