Hello :)
Alors en gros l'opérateur && est mieux, c'est une question de priorité
Avec and tu peux te retrouver avec ce genre de problème
En gros l'opérateur = est prioritaire à l'operateur and, du coup php va d'abord traiter le calcul $resultAnd = $foo, donc true sera ajoutée à la variable, et ensuite il va calculer en dans le vide la comparaison avec $bar, en gros du point de vue de php ça donne ça: ($resultAnd = $foo) and $bar;
Alors que l'opérateur && lui est prioritaire à =, php va donc en premier comparer, et ENSUITE assigner la variable
Je sais pas si c'est vouulu ou si PHP a abandonné l'opérateur and en passant à PHP7 (la première version non-cassée de PHP)