Così ho avere una dichiarazione PHP del seguente tipo:PHP sembra essere valutando un'istruzione if indietro
if ($x=function($y) || $z == 50) {
Quello che vedo accadendo è che se $ z è 50, $ x non ottiene impostato perché la funzione non viene mai chiamata. È davvero possibile? Posso (e ho fatto) sistemarlo facilmente, ma credo di essere confuso dal fatto che sia quello che sta succedendo e voglio essere sicuro di non commettere errori come questo andando avanti Ho cercato di scoprire come vengono valutate le espressioni OR come questa. C'è un posto dove posso guardare per vedere come viene compilato php?
IMHO è buona pratica per scambiare i test - Sia '$ z == 50' come prima cosa. Passa, non abbiamo bisogno di chiamare la funzione. – hsz
Le condizioni vengono valutate da sinistra a destra. Esempio di codice completo o non è successo. –
Come si vede nelle risposte seguenti, le condizioni non vengono valutate da sinistra a destra, vengono valutate in ordine di precedenza. –