?? )如果第一个操作数存在且不为空,则返回第一个操作数,否则返回第二个操作数。
??
举个例子,说函数 get_name() 返回字符串值或null。
get_name()
$name = get_name() ?? 'no name found';
获取\u name() 调用一次,并且存储的值准备将其分配给变量( $name )或者当 ?? 由于函数返回的值为true而激活 isset() ?? 再次调用第一个操作数以获取值?
获取\u name()
$name
isset()
只叫过一次。
如果您在功能中添加了副作用,例如打印,则很容易看出这一点,例如:
<?php function get_name() { print("get_name() was called\n"); return "somestring"; } $name = get_name() ?? 'no name found'; print($name); ?>
Demo