Weil er andere Einstellungen für die Fehlerausgabe verwendet als du, siehe:

Wobei du auch eine Standardeinstellung in deiner php.ini festlegen kannst.
Das ganze funktioniert in diesem Fall nur, weil die PHP-Laufzeitumgebung deine Variable implizit initialisiert - es wird also angenommen, dass deine Variable ein Integer Wert sein soll und damit weitergearbeitet.
Natürlich kann so eine durch die PHP-Laufzeitumgebung gemachte Annahme auch falsch sein, was dann zur Folge hätte, dass sich dein Code anders verhält, als du es eigentlich möchtest.
Aus diesem Grund wird ein Hinweis (i.e. Notice) ausgegeben, welcher dich darauf aufmerksam macht, dass hier eine Eigenschaft angenommen worden ist, die du so nicht explizit festgelegt hast.