Ja klar, was da unter der Haube läuft ist dem Anwender völlig wurst. Unterm Blech jedoch kannst Du da ziemlich alles machen, egal wie falsch, hauptsache einheitlich!
Unterscheide programmiertechnisch den Rückgabewert einer Funktion. Sobald ein Solcher undefiniert ist, gab es einen Fehler. Also Fehlerspeicher auslesen.
Wenn der RV jedoch definiert ist, ist es kein Fehler. Aber er kann auch leer sein.
MfG
PS: Perls Exception Modell ist für solche Dinge besonders gut geignet weil es gewisse Freizügigkeiten im Umgang bietet. In PHP ist das eher unschön und macht den CODE nur komplizierter als ihn zu vereinfachen.