ber*_*kes 20 php ruby operators
在PHP中,我经常写类似的行
isset($foo)? NULL : $foo = 'bar'
Run Code Online (Sandbox Code Playgroud)
在红宝石中有一个明亮的捷径,叫做或等于
foo ||= 'bar'
Run Code Online (Sandbox Code Playgroud)
PHP有这样的操作符,快捷方式或方法调用吗?我找不到一个,但我可能错过了它.
Gor*_*don 22
从PHP7开始,您可以使用Null Coalesce运算符:
??添加了coalesce,或者运算符,如果它存在且不是NULL,则返回其第一个操作数的结果,否则返回其第二个操作数.
所以你可以写:
$foo = $foo ?? 'bar';
Run Code Online (Sandbox Code Playgroud)
它将使用$foo如果它被设置而不是null或指定"bar" $foo.
在旁注中,您使用三元运算符给出的示例应该是:
$foo = isset($foo) ? $foo : 'bar';
Run Code Online (Sandbox Code Playgroud)
三元运算不是简写if/else控制结构,但它应该用于根据第三个表达式选择两个表达式,而不是选择两个句子或执行路径
小智 8
我真的很喜欢?:运算符.不幸的是,它还没有在我的生产环境中实现.所以,如果我要看起来像ruby-ish,我会去寻找类似的东西:
isset($foo) || $foo = 'bar';
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望它更短(更慢,并可能产生意外结果):
@$foo || $foo = 'bar';
Run Code Online (Sandbox Code Playgroud)
你可以创建自己的功能:
function setIfNotSet(&$var, $value) {
if(!isset($var)) {
$var = $value;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9071 次 |
| 最近记录: |