-3

PHPで私が次のようなものを書く場合

If ($this->that()){ return $this->that()}

$this->that()2回実行されますか?それとも、そのパーサーはそれを理解して1回の呼び出しに減らしますか?

可能であればコードをクリーンに保つようにしますが、1つの変数割り当てのために、実行時間で2倍にしたくありません。

4

3 に答える 3

9

はい、2回実行されます。

一度実行するには、その値を変数に保存して、変数を返す必要があります。

if ($value = $this->that()) {
    return $value;
}
于 2012-11-09T18:06:06.670 に答える
1

間違いなく2回実行されます。

おそらくあなたはfunction_existsを探していますか?あなたのifステートメントが関数が存在するかどうか、またはfalseを返さないかどうかを判断することを目的としているかどうかはわかりません。

于 2012-11-09T18:07:17.010 に答える
1

関数を2回呼び出すと、2回評価されます。

于 2012-11-09T18:05:40.787 に答える