EL operador lógico && da como valor boleano TRUE si tanto $a como $b son TRUE, y no es el que tendrías que usar, pues tu buscas que si cualquiera de esas posibilidades es true, haga una acción, y para eso se usa
|| o
OR Manual sobre Operadores Lógicos