Getter und Setter überladen: Die magischen Methoden __get und __set verstehen
Die magischen Methoden __get und __set in PHP sollen eine Alternative dazu bieten traditionelle Getter und Setter. Durch Überschreiben dieser Methoden können Entwickler das Verhalten beim Zugriff und bei der Änderung von Eigenschaften anpassen. Wie im bereitgestellten Codebeispiel zu sehen ist, werden diese Methoden jedoch nicht wie erwartet aufgerufen.
Das Problem: Magische Methoden vs. öffentliche Eigenschaften
Wenn Eigenschaften deklariert werden Wenn sie öffentlich sind, gelten sie als zugänglich und PHP ruft die Methoden __get und __set nicht auf. In diesem speziellen Fall wird die $bar-Eigenschaft als öffentlich deklariert, wodurch die magischen Methoden überflüssig werden.
Eigenschaftsüberladung mit magischen Methoden
Wie im PHP-Handbuch erwähnt, __get wird zum Lesen von Daten aus unzugänglichen Eigenschaften verwendet, während __set zum Schreiben von Daten in unzugängliche Eigenschaften verwendet wird. Wenn die Eigenschaft $bar als privat oder geschützt definiert worden wäre, hätten die Methoden __get und __set eingegriffen.
Auswirkungen auf die Leistung
Es ist wichtig zu beachten, dass es sich um magische Methoden handelt deutlich langsamer als normale Getter, Setter und direkte Methodenaufrufe. Daher sollten sie mit Bedacht für bestimmte Anwendungsfälle verwendet werden, wie zum Beispiel die Fehlerbehandlung oder die Bereitstellung eines dynamischen Eigenschaftszugriffs.
Fazit
Die magischen Methoden __get und __set in PHP dienen dazu Sie dienen einem bestimmten Zweck und sollten nur bei Bedarf verwendet werden, wobei die damit verbundenen Leistungseinbußen zu berücksichtigen sind. In Fällen, in denen auf Eigenschaften zugegriffen werden kann, wie im bereitgestellten Beispiel, ist es effizienter, Standardtechniken für den Zugriff und die Änderung von Eigenschaften zu verwenden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3