2017-03-08 6 views
1
if ($this->guardian()) { return $this->guardian(); }<--will this execute method twice? 

$guardian = $this->guardian(); 
if ($guardian) { return $guardian; } 

私は質問をしますが、もしifとreturnメソッドの中にクラスメソッドを置くと、これはメソッドを2回実行しますか?あなたはクラスメソッドがif()の中で2回実行する

if ($ret = $this->guardian()) { return $ret; } 
+0

はい、それです。 2番目の方法はそれを行う正しい方法です –

+0

しかし、最初の方法はとても素敵で綺麗に見える –

+0

はい、それは機能を呼び出すでしょう、私は第二の変種が良いと思う –

答えて

2

(きれい、私は二回実行したくないの)最初のオプションは、メソッドを実行しますあなたはそれを2回呼び出すので、2回。

しかし、2番目のオプションは、メソッドの結果をvar $guardianに格納します。 2番目の方法は、正しい方法です。関数Xを複数回呼び出す必要がないため、適切ではなく、非効率的です。これは、より多くのリソースを消費します。

+0

この1つの外観はいいとはっきりしている!ありがとう! –

3

を行うことができますはい、それは意志、それは0を返さない限り、ヌル、偽など

関連する問題