【问题标题】:PHP shorthand for "if (!isset($var)) $var = 1;" [duplicate]“if (!isset($var)) $var = 1;”的 PHP 简写[复制]
【发布时间】:2014-02-06 01:57:44
【问题描述】:

是否有“如果此变量尚未设置,则设置它”的简写版本?

例子:

switch ($Frequency) {
    case 'Once':
        doSomethingSpecific();
        break;
    case 'Daily':
        $Message = 'Event will occur every day at the same time.';
    case 'Weekly':
        if (!isset($Message)) $Message = 'Event will occur every week on the same day of the week, at the same time.';
    case 'Monthly':
        if (!isset($Message)) $Message = 'Event will occur every month on the same day of the week.';
        doSomething($Message);
        break;
}

【问题讨论】:

  • $var = (!isset($var)) ? 1 : $var;
  • 恕我直言,这可以写得更好,以便更清楚地了解您在做什么。我建议先检查$Frequency == "Once",然后检查doSomethingSpecific(),否则设置消息并在最后调用doSomething()
  • @JonathanKuhn - 谢谢,这只是一个例子。

标签: php shorthand


【解决方案1】:

是的,它被称为三元运算符:

$var = isset($var) ? $var : "Some default";

从 PHP 5.3 开始,也有一个简写版本:

$var = isset($var) ?: "Some default";

还有一个 PHP 5.3+ 的替代版本:

isset($var) ?: $var = "Some default";

【讨论】:

    猜你喜欢
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多