Weil es __isset überprüft, anstatt es abzurufen es mit __get.
Es ist eine viel bessere Option, __isset aufzurufen, da es keinen Standard für das gibt, was leer ist. Vielleicht ist im Rahmen der Klasse null ein akzeptabler Wert. Sie könnten auch eine Klasse haben, die, wenn das Element nicht existiert, ein neues leeres Objekt zurückgibt, das %code% bricht, da in diesem Fall immer true zurückgegeben wird.
Es ist einfach nicht; Sie können stattdessen __isset verwenden. Dies ist hier festgelegt.
Nein, %code% sollte nicht ausgelöst werden, wenn Sie ermitteln möchten, ob eine Eigenschaft festgelegt ist: Testen, ob eine Eigenschaft festgelegt ist, ist nicht dasselbe wie das Abrufen des Werts.
Die Verwendung von %code% löst die %code% magische Methode aus.
Siehe:
Die magische Funktion __get wird nur aufgerufen, wenn Sie versuchen, auf eine Eigenschaft zuzugreifen, die nicht existiert. Überprüfen, ob eine Eigenschaft vorhanden ist, ist nicht dasselbe wie das Abrufen der Eigenschaft.
Scheint die Antwort ist nein, aber warum?