写If(Function){return function}执行该函数两次吗?

Dis*_*ple -3 php

在Php,如果我写的东西像

If ($this->that()){ return $this->that()}
Run Code Online (Sandbox Code Playgroud)

它执行$this->that()两次吗?或者该解析器是否将其解决并将其减少为1次调用?

尽可能保持代码清洁,但不希望为了一个变量赋值而将执行时间加倍.

new*_*rey 9

是的,它执行两次.

要使其执行一次,您应该将其值保存到变量中并返回变量:

if ($value = $this->that()) {
    return $value;
}
Run Code Online (Sandbox Code Playgroud)