PHP 等同于 Ruby 的 or-equals (foo ||=酒吧)?
在 PHP 中,我经常写像
isset($foo)? NULL : $foo = 'bar'
在 ruby 中,有一个很棒的快捷方式,称为或等于
foo ||= 'bar'
PHP是否有这样的运算符,快捷方式或方法调用?我找不到一个,但我可能错过了它。
在 PHP 中,我经常写像
isset($foo)? NULL : $foo = 'bar'
在 ruby 中,有一个很棒的快捷方式,称为或等于
foo ||= 'bar'
PHP是否有这样的运算符,快捷方式或方法调用?我找不到一个,但我可能错过了它。
从 PHP7 开始,您可以使用 Null 合并运算符:
添加合并或 运算符,如果合并运算符存在且不为 NULL,则返回其第一个操作数的结果,否则返回其第二个操作数的结果。
??
所以你可以写:
$foo = $foo ?? 'bar';
如果它被设置而不是空,它将使用或将“bar”分配给。$foo
$foo
顺便说一句,您给出的三元运算符示例实际上应该如下所示:
$foo = isset($foo) ? $foo : 'bar';
三元运算不是速记 if/else 控制结构,但它应该用于根据第三个表达式在两个表达式之间进行选择,而不是选择两个句子或执行路径
我真的很喜欢?:运算符。遗憾的是,它尚未在我的生产环境中实现。所以,如果我要让它看起来像红宝石一样,我会选择这样的东西:
isset($foo) || $foo = 'bar';
或者,如果您希望它更短(更慢,并且可能会产生意外结果):
@$foo || $foo = 'bar';