if ( $this->guardian() ) { return $this->guardian(); }<--will this execute method twice?
$guardian = $this->guardian();
if ( $guardian ) { return $guardian; }
我有一个问题,如果我在if和return方法中放置类方法,这会执行两次方法吗? (它很干净,但我不想执行两次)
答案 0 :(得分:3)
第一个选项将执行该方法两次,因为您正在调用它2次。
但是第二个选项会将方法的结果存储在var $guardian
中。
你的第二种方式是正确的方法,因为当一个函数X
不需要它时不止一次,它不正确且效率低下,这将消耗更多的资源。
答案 1 :(得分:2)
是的,它会,除非它返回0,null,false等。你可以做
if ( $ret = $this->guardian() ) { return $ret; }