代码之家  ›  专栏  ›  技术社区  ›  James

空合并运算符调用函数两次吗?

  •  2
  • James  · 技术社区  · 6 年前

    ?? )如果第一个操作数存在且不为空,则返回第一个操作数,否则返回第二个操作数。

    举个例子,说函数 get_name() 返回字符串值或null。

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

    获取\u name() 调用一次,并且存储的值准备将其分配给变量( $name )或者当 ?? 由于函数返回的值为true而激活 isset() ?? 再次调用第一个操作数以获取值?

    1 回复  |  直到 6 年前
        1
  •  6
  •   Mureinik    6 年前

    只叫过一次。

    如果您在功能中添加了副作用,例如打印,则很容易看出这一点,例如:

    <?php
    function get_name() {
        print("get_name() was called\n");
        return "somestring";
    }
    
    $name = get_name() ?? 'no name found';
    print($name);
    ?>
    

    Demo