gpt4 book ai didi

php - 空合并运算符是否调用一个函数两次?

转载 作者:行者123 更新时间:2023-12-03 23:07:20 25 4
gpt4 key购买 nike

空合并运算符 (??) 返回其第一个操作数(如果它存在且不为 NULL),否则返回其第二个操作数。

如果第一个操作数是函数或方法调用,运算符是否调用函数调用两次?

例如,假设函数 get_name() 返回一个字符串值或 null。

$name = get_name() ?? '没有找到名字';

那么 get_name() 是否被调用一次并且存储的值准备好分配给变量 ($name) 或者当 ?? 由于函数返回的值对 isset() 为真而被激活,?? 是否会第二次调用第一个操作数以获取该值?

最佳答案

它只被调用一次。

这很容易看出,如果你给你的函数添加了副作用,比如打印,例如:

<?php
function get_name() {
print("get_name() was called\n");
return "somestring";
}

$name = get_name() ?? 'no name found';
print($name);
?>

Demo

关于php - 空合并运算符是否调用一个函数两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52581975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com