在PHP中有没有更短的方法?
$b = isset($a) ? $a : 'other';
与JS一样
$b = $a || 'other';
这看起来不是什么大事,但是如果你有一大堆要检查的属性/键,这就变成了一个问题。
提前致谢:)
答案 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;
}