在工作日显示内容时避免使用if语句(PHP)

时间:2012-08-11 19:11:58

标签: php if-statement dayofweek

是否有理由或方法在这种情况下避免if语句需要根据星期几显示内容?

$d=date("w");
if ($d=="0") echo "Sunday";
if ($d=="1") echo "Monday";
if ($d=="2") echo "Tueday";
if ($d=="3") echo "Wednesday";
if ($d=="4") echo "Thursday";
if ($d=="5") echo "Friday";
if ($d=="6") echo "Saturday";

5 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点:

<小时/>  1.您可以在date中使用l(小写 L ):

echo date('l');

<小时/>  2.您可以使用array

$days = array(
    "Sunday",
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday");

然后使用以下命令访问它:

echo $days[$d];

<小时/> 3.您可以使用switch

switch ($d)
{
    case 0:
        echo "Sunday";
    ...
}
然而,我倾向于避免switch陈述,因为它们是人类大脑最难理解的。

<小时/> 一些提示:

  1. 你周二拼错了
  2. 使用else if代替多个if s。

答案 1 :(得分:1)

$dates = array("Sunday",
               "Monday",
               "Tuesday",
               "Wednesday",
               "Thursday",
               "Friday",
               "Saturday"
              );

echo $dates[date("w")];

应该很好地说出来。

编辑:想一想,只需使用echo date("l")就可以正常使用。

答案 2 :(得分:1)

使用数组:

$days_of_week = array(
    "Sunday",
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday");

echo $days_of_week[$d]

答案 3 :(得分:1)

echo date ('l');

根据PHP manpage

l (小写'L'):星期几的全文表示

答案 4 :(得分:0)

您可以随时查看switch statement,例如:

$d=date('w');
switch($d) {
    case(0):
        $day='Sunday';
        break;
    case(1):
        $day='Monday';
        break;
    case(2):
        $day='Tuesday';
        break;
    case(3):
        $day='Wednesday';
        break;
    case(4):
        $day='Thursday';
        break;
    case(5):
        $day='Friday';
        break;
    case(6):
        $day='Saturday';
        break;
    default:
        $day=null;
}
if($day!==null) {echo($day);}