PHP bietet magische Methoden, die es Entwicklern ermöglichen, bestimmte Vorgänge wie Eigenschaftszugriff und Methodenaufrufe zu überlasten. Zu diesen Methoden gehören __get und __set, die das Standardverhalten des Eigenschaftszugriffs überschreiben sollen.
Der bereitgestellte Code definiert eine Klasse foo mit öffentlichen Eigenschaften und den magischen Methoden __get und __set. Wenn Sie jedoch versuchen, mit diesen Methoden auf $foo->bar zuzugreifen, wird nur auf die öffentliche Eigenschaft zugegriffen.
Das liegt daran, dass __get und __set nur aufgerufen werden, wenn auf die Eigenschaft oder Methode nicht zugegriffen werden kann. Da $foo->bar eine öffentliche Eigenschaft ist, werden die magischen Methoden nicht ausgelöst.
Gemäß dem PHP-Handbuch wird __get ausgeführt, wenn Daten aus unzugänglichen Eigenschaften gelesen werden, und __set wird verwendet, wenn Daten in unzugängliche Eigenschaften geschrieben werden Eigenschaften. In diesem Fall sind die Klassenmitglieder öffentlich und daher zugänglich, sodass die magischen Methoden irrelevant sind.
Anstatt magische Methoden zu verwenden, sollten Sie erwägen, geeignete Getter und Setter zu implementieren oder direkt auf die Eigenschaften zuzugreifen, um ein effizienteres und vorhersehbareres Verhalten zu erzielen. Magische Methoden sollten Ausnahmefällen vorbehalten bleiben, in denen Eigenschaften oder Methoden mit normalen Mitteln nicht zugänglich sind.
Das obige ist der detaillierte Inhalt vonWarum werden die magischen Methoden __get und __set von PHP beim Zugriff auf eine öffentliche Eigenschaft nicht aufgerufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!