Jam*_*mes 2 php null-coalescing-operator php-7
null合并运算符(??)返回其第一个操作数(如果它存在且不为NULL),否则返回其第二个操作数.
如果第一个操作数是函数或方法调用,操作符是否会调用函数调用两次?
例如,假设该函数get_name()返回一个字符串值或null.
$name = get_name() ?? 'no name found';
因此,被get_name()调用一次,值存储准备把它赋值给变量($name),或者当??被激活引起的函数返回一个值,是真正的isset(),并??在第一个操作数调用第二次获得的价值?
它只被叫一次.
如果您为功能添加副作用(例如打印),则很容易看到:
<?php
function get_name() {
print("get_name() was called\n");
return "somestring";
}
$name = get_name() ?? 'no name found';
print($name);
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |