¿Por qué la negación ocurre en último lugar en una expresión de asignación en PHP?

El operador de negación tiene mayor prioridad que el operador de asignación, ¿por qué es más bajo en una expresión?

p.ej.

if (!$var = getVar()) {

En la expresión anterior la asignación ocurre primero, la negación después. ¿No debería ser la negación primero, luego la asignación?

Respuestas a la pregunta(3)

Su respuesta a la pregunta