PHP-Objektorientierung Teil 2 – Kapselung
Dec 05, 2016 pm 01:26 PM1. Verpackung:
Wenn ich über das konkrete Konzept spreche, habe ich das Gefühl, dass ich nicht wei?, wovon ich spreche. Tats?chlich ist es nur
Fügen Sie vor den Mitgliedseigenschaften und Mitgliedsmethoden der Klasse einen Modifikator ?hnlich wie ?public protected private“ hinzu
Zweck:Die internen Details des Objekts so weit wie m?glich verbergen, um eine Zugangskontrolle zu erreichen [Es geht nicht darum, den Zugang zu verweigern]. , wobei nur begrenzte externe Schnittstellen und externe Ereignisse (Kontakt) beibehalten werden.)
2. Prinzipien der Kapselung:
Der externe Teil des Objekts kann nicht nach Belieben auf die internen Daten (Mitgliedseigenschaften und Mitgliedsmethoden) des Objekts zugreifen, wodurch die ?Kreuzinfektion“ externer Fehler effektiv vermieden und Softwarefehler erm?glicht werden Lokalisierung sein, wodurch die Schwierigkeit der Fehlerprüfung und des Debuggens erheblich verringert wird.
3. Modifikator ?ffentlich geschützt privat
?ffentlich: ?ffentlich, standardm??ig geschützt: geschützt privat: privat
4. Zugriffsbereich
Ob auf die entsprechenden Eigenschaften und Methoden zugegriffen werden kann
? | ? ? ? ?public | ? ? ? protected | ? ? ? private |
類的外部 | ? ? ? ? ? √ | ? ? ? ? ? ?× | ? ? ? ? ? ?× |
類的內(nèi)部 | ? ? ? ? ? √ | ? ? ? ? ? √ | ? ? ? ? ? √ |
①Nur ?ffentliche Eigenschaften und Methoden k?nnen au?erhalb der Klasse aufgerufen werden.
②Auf andere Eigenschaften und Methoden kann indirekt zugegriffen werden, indem ?ffentliche Methoden innerhalb der Klasse deklariert werden.
③Sie k?nnen innerhalb der Klasse auf ?ffentliche, private und geschützte Eigenschaften und Methoden zugreifen.
④Auf private und geschützte Eigenschaften und Methoden kann innerhalb einer Klasse nicht zugegriffen werden.
Wenn die Mitgliedsmethode keine Zugriffskontrollzeichen hat, ist sie standardm??ig ?ffentlich und kann von überall aus aufgerufen werden (?ffentliche Methoden k?nnen als Zugriffsschnittstellen au?erhalb des Objekts verwendet werden, um indirekt auf das Interne zuzugreifen Details zum Objekt) .
5. über mehrere g?ngige magische Methoden in der Kapselung __set(), __get(), __isset(), __unset()
Um diese magischen Methoden vorzustellen, zun?chst einmal: Die Konstruktionsmethode __construct() wird nicht durch Schlüsselw?rter ge?ndert und ist eine ?ffentliche Methode (Legen Sie keine privaten Berechtigungen für die Konstruktionsmethode fest)Benutzer k?nnen den Konstruktor verwenden, um privaten Eigenschaften Anfangswerte zuzuweisen, nachdem sie das Objekt instanziiert haben.
Wir haben das Objekt jedoch instanziiert und m?chten privaten Eigenschaften Werte zuweisen, w?hrend das Programm l?uft. Es gibt zwei Methoden
(1). Legen Sie ?ffentliche Methoden innerhalb der Klasse fest, um Zuweisungs- und Werteschnittstellen bereitzustellen
class Person{ private $name="紫藤"; public function __construct(){ echo $this->name; } //賦值方法 public function setvalue($name){ $this->name=$name; } public function getvalue(){ echo $this->name; } } //實例化 $mod = new Person();
Das Ergebnis ist: Glyzinien
$mod->setvalue('寶強'); $mod->getvalue();
Das Ergebnis ist: Baoqiang
(2)Magische Methoden __set(),__get(),__isset(),__unset()
Wenn Sie wie oben beschrieben jedes Mal die ?ffentliche Methode festlegen müssen, ist dies sehr umst?ndlich. In Versionen nach PHP5.1.0 sind __set() und __get() vordefiniert, um die Paarung abzuschlie?en -?ffentliche Attribute k?nnen abgerufen und kopiert werden.
__set($propertyName,$propertyValue)
hat zwei Parameter, Attributname und Attributwert Wenn Sie einem nicht ?ffentlichen Attribut einen Wert zuweisen, wird diese Methode automatisch aufgerufen ( hei?t, dass __set()) in der Klasse deklariert werden muss (sp?ter im Code hinzugefügt)
__get($propertyName) ruft diese Methode automatisch auf, wenn der Wert einer nicht ?ffentlichen Eigenschaft abgerufen wird.
Erkennen Sie, ob nicht ?ffentliche Attribute vorhanden sind __isset() und l?schen Sie die nicht ?ffentlichen Attribute eines Objekts __unset().Um zu verhindern, dass Benutzer diese beiden Methoden aktiv aufrufen, verwenden Sie die privates Schlüsselwort In einem Objekt gekapselt.
__isset($propertyName) erkennt, ob nicht ?ffentliche Attribute vorhanden sind (dies ist eine Hilfserkennungsfunktion und hat keine Erkennungsfunktion). Diese wird automatisch aufgerufen, wenn die Funktion isset() extern aufgerufen wird. Methode.
__unset($propertyName) l?scht die nicht ?ffentlichen Eigenschaften eines Objekts_ Diese Methode wird nur automatisch aufgerufen, wenn die Funktion unset() extern aufgerufen wird

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)