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 isset($myObj->item)
bricht, da in diesem Fall immer true zurückgegeben wird.
Es ist einfach nicht; Sie können stattdessen __isset verwenden. Dies ist hier festgelegt.
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.