So habe ich eine PHP-Anweisung der folgenden Art:PHP scheint eine if-Anweisung zu evaluieren rückwärts
if ($x=function($y) || $z == 50) {
Was ich sehe, passiert, ist, dass, wenn $ z 50 ist, $ x nicht bekommt gesetzt, weil die Funktion nie aufgerufen wird. Ist das wirklich möglich? Ich kann das leicht beheben (und habe es getan), aber ich denke, ich bin verwirrt, dass das passiert und ich sicherstellen will, dass ich keine Fehler mache. Ich habe versucht herauszufinden, wie OR-Ausdrücke wie diese bewertet werden. Gibt es einen Ort, an dem ich nachsehen kann, wie PHP "kompiliert" wird?
IMHO ist es gut, Praxis-Tests zu tauschen - Sei '$ z == 50' zuerst. Wenn es passiert, müssen wir die Funktion nicht aufrufen. – hsz
Die Bedingungen werden von links nach rechts ausgewertet. Vollständiger Codebeispiel oder nicht geschehen. –
Wie in den Antworten unten zu sehen ist, werden Bedingungen nicht von links nach rechts ausgewertet, sie werden in der Reihenfolge ihres Vorrangs bewertet. –