更简洁的方法来设置默认值?

时间:2012-11-22 07:33:11

标签: php variables variable-assignment default-value

  

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

有没有比跟随代码更好或更简洁的方法来设置变量的默认值?

$v = isset($v) ? $v : "default value";

5 个答案:

答案 0 :(得分:6)

TL; DR - 不,该表达式不能缩短。

你想要的是缩短的三元表达式来执行隐式isset()。这已在mailing list上进行了讨论,并且已创建了涵盖此概念的ifsetor RFC

由于在上述讨论时已经存在缩短的三元运算符,因此proposed使用不存在的运算符??

// PROPOSAL ONLY, DOES NOT WORK
$v = $v ?? 'default value';
如果'default value'未定义,

分配$v

然而,到目前为止,主要语言并未实现这一点。在那之前,你所写的内容不能缩短。

这个可怕的结构更短,但请注意它不一样,因为如果变量存在但是评估为false,它会分配默认值:< / p>

// DO NOT USE
$v = @$v ?: 'default value';

答案 1 :(得分:2)

刚刚问过this,并指出了这里。因此,如果您使用key的{​​{1}},这可能是一项改进

array

答案 2 :(得分:2)

这是一个较短的语法:

isset($v) || $v="default value";

答案 3 :(得分:0)

不。如果你真的不知道是否设置了$v,这是正确的方法。

答案 4 :(得分:0)

没办法。如果你使用三元运算符。