PHPで私が次のようなものを書く場合
If ($this->that()){ return $this->that()}
$this->that()
2回実行されますか?それとも、そのパーサーはそれを理解して1回の呼び出しに減らしますか?
可能であればコードをクリーンに保つようにしますが、1つの変数割り当てのために、実行時間で2倍にしたくありません。
PHPで私が次のようなものを書く場合
If ($this->that()){ return $this->that()}
$this->that()
2回実行されますか?それとも、そのパーサーはそれを理解して1回の呼び出しに減らしますか?
可能であればコードをクリーンに保つようにしますが、1つの変数割り当てのために、実行時間で2倍にしたくありません。
はい、2回実行されます。
一度実行するには、その値を変数に保存して、変数を返す必要があります。
if ($value = $this->that()) {
return $value;
}
間違いなく2回実行されます。
おそらくあなたはfunction_existsを探していますか?あなたのif
ステートメントが関数が存在するかどうか、またはfalseを返さないかどうかを判断することを目的としているかどうかはわかりません。
関数を2回呼び出すと、2回評価されます。