【问题标题】:Arrays and IF-tags数组和 IF 标签
【发布时间】:2014-10-27 18:57:42
【问题描述】:

我试图让一个 PHP 网页说一个简单的:

"Hi, today its ___day have a nice week!"

"Hi, today its ___day have a nice weekend!".

我有自动取款机的代码是(抱歉在某些时候随机瑞典语):

setlocale(LC_TIME, 'english');
$day = strftime('%A', time());
$week=array("monday","tuesday","wednesday","thursday","friday","saturday","sunday");
if ($day<"saturday");
{
    echo "Idag är det " . $day . "Ha en trevlig vardag!";
}
else if ($day>"friday");
{
    echo "Idag är det " . $day . "Ha en trevlig helg!";
}
else ($day="sunday");
{
    echo "Idag är det " . $day . "Ha en trevlig vecka!";
}

【问题讨论】:

  • 如果你回显$day,它会产生什么?
  • 另外,我很确定&gt;&lt; 是指整数?所以不确定你是否可以检查一个字符串是否小于或大于另一个字符串?我想你会想使用==!=
  • 看看stackoverflow.com/editing-help 它应该可以帮助您格式化您的帖子。粘贴代码时,选中它并单击工具栏上的{} 按钮将其放入“代码块”中。我为你修复了这篇文章:-)
  • 当我回显 $day 时,我得到一个错误:“错误:[4] 语法错误,第 10 行发生了意外的 'else' (T_ELSE)”但是可以说,例如我删除了 else 标签,它有效,它写出了当天..对不起,我会这样做的,绝对!
  • @PontusLundh:你把echo $day;放在哪里了?你最后加了;吗?

标签: php arrays loops if-statement


【解决方案1】:

首先,这里不需要建立一个数组来使用。只需使用 DateTime 对象。你应该能够大大简化这个:

$datetime = new DateTime();
// get day of week string
$message = "Idag är det " . $datetime->format('l');
// get day of week number. gives day number 1 (Monday) - 7 (Sunday)
$day_of_week_number = (int)$datetime->format('N');
switch ($day_of_week_number) {
    case 7:
        $message .= ' Ha en trevlig vecka!';
        break;
    case 6:
        $message .= ' Ha en trevlig helg!';
        break;
    default:
        $message .= ' Ha en trevlig vardag!';
        break;
}
echo $message;

【讨论】:

  • 效果很好。但对我来说,只是阅读该代码,我理解 nada .. 哈。实际上是否可以使用与我“有点”相同的代码但使用数组来做到这一点?
  • @PontusLundh 为什么在不需要的时候创建一个数组? PHP 已经具有处理日期的内置功能,包括我在示例中使用的非常有用的 DateTime 类。这使您可以简单地为当前日期和时间实例化一个对象,然后以不同的方式对其进行格式化。这是所有支持的格式字符的列表 - php.net/manual/en/function.date.php 正如您所看到的那样,选项非常强大。
  • @PontusLundh 这里第一行代码实例化了 DateTime 对象。接下来的两行以两种不同的格式获取当前日期(星期几文本和星期几数字)。然后 switch 语句将星期几的值与您的选项进行比较以完成句子。
  • 谢谢,我正在保存这个,我会在那个网页上阅读更多内容,这样我才能理解它的每一个字母! :D 如果可能的话,我会尽可能多地使用它。我很欣赏快速响应!如果可以,我会投票!
  • 不知道你是否还在这里,可能是一个迟钝的问题.. 但是“案例”我猜那是日子.. 1-7?对?案例 6 - 周六,案例 7 - 周日?还是我完全不在了..
猜你喜欢
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 2012-05-19
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多