A un livello puramente logico, presumendo &
è il locale e l'operatore, quindi $a
essendo 5
lo preclude dall'essere null
.
Detto questo, in alcuni linguaggi e cortocircuiti (cioè, se un operando fallisce, non controlla gli altri, poiché l'intera clausola è nota per fallire quando lo si fa). In questo caso, questa potrebbe essere una mossa per l'efficienza, anche se è altamente improbabile che l'uguaglianza sia un'operazione abbastanza costosa per renderlo utile (specialmente perché PHP non offre un sovraccarico dell'operatore).
Poiché è PHP, una singola e commerciale è un'operazione% bit and
, non logica, in quanto tale, non può essere pigro. Il tuo argomento ha una e commerciale, mentre la domanda stessa ne ha due, penso che quest'ultima sia più probabile che sia l'opzione reale (poiché ciò che sta accadendo è un controllo logico), ma dovresti chiarire.