Die if-Kontrolle prüft, ob diese Zuweisung erfolgreich war.
Er hat es dir doch gerade erklärt: Nein, das macht sie nicht! Die Zuweisung steht dort als Ausdruck, der vom if ausgewertet wird.
if ($a = 12) {...}
ist nur die Kurzform für
$a = 12;
if ($a) {...}