Heim Backend-Entwicklung PHP-Tutorial php幻术方法: _get() 和 _set()的妙用

php幻术方法: _get() 和 _set()的妙用

Jun 13, 2016 am 10:40 AM
array property the this title

php魔术方法: __get() 和 __set()的妙用

?

<?phpclass Post {  private $title;  private $content;  private $author;  private $comments;  private $_getters = array('title', 'content', 'author', 'comments');  private $_setters = array('title', 'content', 'author');    public function __get($property) {    if (in_array($property, $this->_setters)) {      return $this->$property;    }    else if (method_exists($this, '_get_' . $property))      return call_user_func(array($this, '_get_' . $property));    else if (in_array($property, $this->_getters) OR method_exists($this, '_set_' . $property))      throw new Exception('Property "' . $property . '" is write-only.');    else      throw new Exception('Property "' . $property . '" is not accessible.');  }  public function __set($property, $value) {    if (in_array($property, $this->_getters)) {      $this->$property = $value;    }    else if (method_exists($this, '_set_' . $property))      call_user_func(array($this, '_set_' . $property), $value);    else if (in_array($property, $this->_setters) OR method_exists($this, '_get_' . $property))      throw new Exception('Property "' . $property . '" is read-only.');    else      throw new Exception('Property "' . $property . '" is not accessible.');  }}?>This way the variables in the $_getters array can be read from the outside and the variables in the $_setters array can be modified from the outside, like this:<?php$post = new Post();$post->title = 'Hello, World';echo $post->title;// The following will throw an exception since $comments is read-only:$post->comments = 23;?>And in case you need a less generic getter or setter at some point, you can remove the variable from the $_getters or $_setters array and implement a method like:<?phpprivate function _set_title($value) {  $this->title = str_replace('World', 'Universe', $value);}?>And from the outside the property could still be used with:<?php$post->title = 'Hello, World!';?>
Nach dem Login kopieren

?上面是手册里的例子,但是我觉得应该是先判断类里面是否有处理属性的方法,有的话就调用该方法,没有就直接设置该属性。

?

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Nach 2 Monaten kann der humanoide Roboter Walker S Kleidung falten Nach 2 Monaten kann der humanoide Roboter Walker S Kleidung falten Apr 03, 2024 am 08:01 AM

Herausgeber des Machine Power Report: Wu Xin Die heimische Version des humanoiden Roboters + eines großen Modellteams hat zum ersten Mal die Betriebsaufgabe komplexer flexibler Materialien wie das Falten von Kleidung abgeschlossen. Mit der Enthüllung von Figure01, das das multimodale große Modell von OpenAI integriert, haben die damit verbundenen Fortschritte inländischer Kollegen Aufmerksamkeit erregt. Erst gestern veröffentlichte UBTECH, Chinas „größter Bestand an humanoiden Robotern“, die erste Demo des humanoiden Roboters WalkerS, der tief in das große Modell von Baidu Wenxin integriert ist und einige interessante neue Funktionen aufweist. Jetzt sieht WalkerS, gesegnet mit Baidu Wenxins großen Modellfähigkeiten, so aus. Wie Figure01 bewegt sich WalkerS nicht umher, sondern steht hinter einem Schreibtisch, um eine Reihe von Aufgaben zu erledigen. Es kann menschlichen Befehlen folgen und Kleidung falten

PHP-Hinweis: Es wird versucht, die Eigenschaft eines Nicht-Objekts abzurufen – Lösung PHP-Hinweis: Es wird versucht, die Eigenschaft eines Nicht-Objekts abzurufen – Lösung Aug 17, 2023 am 09:27 AM

PHPNotice: Tryingtogetpropertyofnon-object-Solution Während des PHP-Entwicklungsprozesses kann es zu einer häufigen Fehlermeldung kommen: Tryingtogetpropertyofnon-object (versucht, Eigenschaften von Nicht-Objekten abzurufen). Dieser Fehler wird normalerweise verursacht, wenn wir versuchen, auf eine Eigenschaft einer Variablen zuzugreifen (oder eine Methode aufzurufen), die kein Objekttyp ist. Dieser Artikel stellt Ihnen dies vor

Lösung für PHP-Hinweis: Undefinierte Eigenschaft: Lösung für PHP-Hinweis: Undefinierte Eigenschaft: Jun 22, 2023 pm 02:48 PM

Beim Schreiben von Code in PHP kann es zu der Fehlermeldung „Hinweis: Undefinierte Eigenschaft“ kommen. Dieser Fehler bedeutet, dass wir auf eine undefinierte Eigenschaft zugreifen, normalerweise weil die Eigenschaft im Code nicht initialisiert wurde. Wie kann man dieses Problem lösen? Hier sind einige mögliche Lösungen: Eigenschaften initialisieren Dies ist der einfachste Weg, dieses Problem zu lösen. Durch die explizite Initialisierung einer Eigenschaft im Code wird sichergestellt, dass sie vor der Verwendung definiert wird. Zum Beispiel: Klasse

Array mit der Array.Sort-Funktion in C# sortieren Array mit der Array.Sort-Funktion in C# sortieren Nov 18, 2023 am 10:37 AM

Titel: Beispiel für die Verwendung der Array.Sort-Funktion zum Sortieren eines Arrays in C#. Text: In C# ist Array eine häufig verwendete Datenstruktur, und häufig sind Array-Sortiervorgänge erforderlich. C# stellt die Array-Klasse bereit, die über die Sort-Methode verfügt, um Arrays bequem zu sortieren. In diesem Artikel wird gezeigt, wie Sie ein Array mithilfe der Array.Sort-Funktion in C# sortieren, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die grundlegende Verwendung der Array.Sort-Funktion verstehen. Array.So

Was bedeutet Titel? Was bedeutet Titel? Aug 04, 2023 am 11:18 AM

Titel ist die Bedeutung, die den Titel der Webseite definiert. Er befindet sich im Tag und ist der in der Titelleiste des Browsers angezeigte Text. Der Titel ist für die Suchmaschinenoptimierung und das Benutzererlebnis der Webseite sehr wichtig. Beim Schreiben von HTML-Webseiten sollten Sie darauf achten, relevante Schlüsselwörter und attraktive Beschreibungen zu verwenden, um das Titelelement zu definieren und mehr Benutzer zum Klicken und Durchsuchen zu bewegen.

TypeError: Die Eigenschaft „XXX' von null in Vue kann nicht gelesen werden. Was soll ich tun? TypeError: Die Eigenschaft „XXX' von null in Vue kann nicht gelesen werden. Was soll ich tun? Nov 25, 2023 pm 01:21 PM

Vue ist ein beliebtes JavaScript-Framework zum Erstellen von Benutzeroberflächen. Während des Entwicklungsprozesses können verschiedene Fehler und Ausnahmen auftreten. Einer der häufigsten Fehler ist „TypeError:Cannotreadproperty'XXX'ofnull“. In diesem Artikel untersuchen wir die Ursachen dieses Fehlers und wie man ihn beheben kann. Lassen Sie uns zunächst den Grund für diesen Fehler verstehen. Wenn wir versuchen, auf eine Eigenschaft oder Methode eines Objekts zuzugreifen, wenn das Paar

So verwenden Sie die Funktion array_combine in PHP, um zwei Arrays zu einem assoziativen Array zu kombinieren So verwenden Sie die Funktion array_combine in PHP, um zwei Arrays zu einem assoziativen Array zu kombinieren Jun 26, 2023 pm 01:41 PM

In PHP gibt es viele leistungsstarke Array-Funktionen, die Array-Operationen komfortabler und schneller machen können. Wenn wir zwei Arrays zu einem assoziativen Array kombinieren müssen, können wir diese Operation mit der Funktion array_combine von PHP ausführen. Diese Funktion wird tatsächlich verwendet, um die Schlüssel eines Arrays als Werte eines anderen Arrays zu einem neuen assoziativen Array zu kombinieren. Als nächstes erklären wir, wie man die Funktion array_combine in PHP verwendet, um zwei Arrays zu einem assoziativen Array zu kombinieren. Erfahren Sie mehr über array_comb

Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Jun 27, 2023 pm 01:48 PM

Beim Programmieren in PHP müssen wir häufig Arrays zusammenführen. PHP stellt die Funktion array_merge() bereit, um die Array-Zusammenführung abzuschließen. Wenn jedoch derselbe Schlüssel im Array vorhanden ist, überschreibt diese Funktion den ursprünglichen Wert. Um dieses Problem zu lösen, stellt PHP in der Sprache auch eine Funktion array_merge_recursive() bereit, die Arrays zusammenführen und die Werte derselben Schlüssel beibehalten kann, wodurch das Programmdesign flexibler wird. array_merge

See all articles