Comparaciones de igualdad no estrictas

Hoy estaba explorando el repository de Symfony y encontré algunas requestes de extracción de @Seldaek en las que cambió la variable con el valor que puede ver a continuación:

enter image description here

Enlace para el PR

¿Cuál es la diferencia entre tener $var === true y true === $var ?

No hay diferencia funcional, es un coding style llamado condiciones yoda .

La gente lo utiliza para evitar asignaciones accidentales en condiciones que normalmente no serían recogidas por el comstackdor cuando la constante es el segundo.

Esta es una statement válida y será difícil de depurar cuando realmente se espera que realice una comparación:

 if ($var = 12) {} 

Esta es una statement inválida y lanzará un error

 if (12 = $var) {} 

ya que no podemos asignar la variable a 12.