isset($ a)的简短方法? $ a:'其他&#39 ;;

时间:2014-10-21 14:23:42

标签: php short

在PHP中有没有更短的方法?

$b = isset($a) ? $a : 'other';

与JS一样

$b = $a || 'other';

这看起来不是什么大事,但是如果你有一大堆要检查的属性/键,这就变成了一个问题。

提前致谢:)

2 个答案:

答案 0 :(得分:0)

PHP 5.3中引入了更短的三元语法。来自the documentation

  

从PHP 5.3开始,可以省略中间部分   三元运算符。表达式expr1?:expr3如果expr1则返回expr1   计算结果为TRUE,否则为expr3。

然而,使用这种较短的语法仍然无法(正确)实现所需的功能,但需要在PHP 7中引入coalesce operator

答案 1 :(得分:0)

只有保证存在$ a才有可能。所以在你的情况下,这是不可能的,因为你似乎不知道是否设置了$ a。

$b = isset($a) ? $a : 'other';

但在这种情况下会是这样的:

public function foo($var)
{
    $var = $var ?: self::DEFAULT;
}