Ich bin ein bisschen ein Optimierungs Freak (zumindest nach meiner Definition) und diese Frage nervt mich seit einer ganzen Weile.PHP || und && logische Optimierung
Ich frage mich, ob PHP einige Optimierungen macht auf & & und ||: Nehmen Sie das folgende Beispiel:
$a = "apple";
$b = "orange";
if ($a == "orange" && $b == "orange") {
//do stuff
}
Wenn dieser Code ausgeführt wird, wird es prüfen, ob ein $ gleich „orange. " In diesem Fall ist es nicht. Es gibt jedoch einen Operator & &. Da der erste Teil ($ a == "orange") bereits falsch zurückgegeben wurde, wird PHP immer noch prüfen, ob $ b gleich "orange" ist.
Ich habe die gleiche Frage für ||:
$a = "orange";
$b = "orange";
if ($a == "orange" || $b == "orange") {
//do stuff
}
Wenn es überprüft, ob $ a "orange", gleich ist es wahr zurückgibt. Da würde das || operator return true, wird PHP sogar den zweiten Teil von || prüfen (da wir schon wissen, dass es wahr sein wird)?
Hoffentlich mache ich hier Sinn, und hoffentlich hat jemand eine Antwort für mich. Vielen Dank!
Das ist, was ich immer angenommen habe. Und in der Praxis funktioniert der AND-Operator auf diese Weise. Zum Beispiel könnte ich 'if (isset ($ a) && $ eine Instanz von SomeClass && $ a-> someMethod() == 'orange') tun und muss jeden Schritt der Bedingung bestehen, um die nächste zu testen. Aber ich habe nichts, um mich zu unterstützen, außer dass ich weiß, dass es funktioniert. –
Warum nicht versuchen?'if (true || die()) {echo '1';}' und 'if (true && die()) {echo '1';}' –