In PHP, warum false and (true && print('hi'))
wertet false
aus und druckt 'hi'
nicht? Ich weiß, logische Operatoren wertet in Kurzschluss (sie sind faul), aber &&
und Klammer hat upper precedence als and
, so (true && print('hi'))
sollte zuerst ausgewertet werden.false und (true && print ('hi'))
Irgendwelche Hinweise? Vielen Dank!
@CBroe es nicht das selbe.he fragt, dass es nicht mit "wahr" arbeitet, wenn Betreiber Priorität berücksichtigt. – tan
@tan ja ist es. Die Frage _ "wird die Bedingung nach && (oder' und ', wie hier) immer ausgewertet" _ wird mit Nein für 'falsch und etwas 'beantwortet - das' Etwas' wird nicht einmal weiter als nötig gesucht. Operatorpräzedenz bedeutet, welchen Einfluss der Operator auf das _result_ des Ausdrucks hat, nicht notwendigerweise die Bewertungsreihenfolge der einzelnen Unterausdrücke. – CBroe
Nicht sicher, warum diese hypothetischen Fragen auftauchen, wenn ich diesen Code schrieb, während ich für eine Firma arbeitete, würde ich erwarten, herausgeschmissen zu werden, nicht gewählt auf SO. –