如果我写的是
,那么在Php中If ($this->that()){ return $this->that()}
它执行$this->that()
两次吗?或者该解析器是否将其解决并将其减少为1次调用?
尽可能保持代码清洁,但为了一个变量赋值,不希望将执行时间加倍。
答案 0 :(得分:9)
是的,它会执行两次。
要使其执行一次,您应将其值保存到变量中并返回变量:
if ($value = $this->that()) {
return $value;
}
答案 1 :(得分:1)
如果你两次调用该函数,它将进行两次评估。
答案 2 :(得分:1)
肯定会执行两次。
也许您正在寻找function_exists?我不确定您的if
语句是否旨在确定函数是否存在或不返回false。