


Ausführliche Erl?uterung h?ufig verwendeter Schlüsselw?rter und magischer Methoden in PHP objektorientiert
Jul 10, 2017 am 11:46 AM1.construct()
Das instanziierte Objekt wird automatisch aufgerufen. Konstrukt wird aufgerufen, wenn Konstrukt und die Funktion mit dem Klassennamen und dem Funktionsnamen gleichzeitig existieren und die andere nicht aufgerufen wird.
Die Funktion mit dem Klassennamen und dem Funktionsnamen ist die alte Version des Konstruktors.
2.destruct()
wird aufgerufen, wenn ein Objekt gel?scht wird oder wenn eine Objektoperation endet.
3.call()
Das Objekt ruft eine Methode auf. Wenn die Methode nicht vorhanden ist, rufen Sie diese Methode auf
4.get()
Eine Objekteigenschaft lesen. Wenn die Objekteigenschaft privat ist, wird sie aufgerufen
5 . set()
Beim Zuweisen eines Werts zu einer Objekteigenschaft wird dieser aufgerufen, wenn die Eigenschaft privat ist
6.toString()
Es wird aufgerufen, wenn Drucken eines Objekts.
7.clone()
Wird beim Klonen eines Objekts aufgerufen, z. B.: $a=new test(); $a1=clone $a;
8.sleep ( )
Serialize wurde zuvor aufgerufen. Wenn das -Objekt gr??er als ist und Sie w?hrend der Serialisierung etwas l?schen m?chten, k?nnen Sie es verwenden.
9.wakeup()
wird aufgerufen, wenn Unserialize verwendet wird, um einige Objektinitialisierungsarbeiten durchzuführen.
10.isset()
Erkennt, ob die Attribute eines Objekts vorhanden sind. Wenn das erkannte Attribut privat ist, wird es aufgerufen.
11.unset()
Wenn beim L?schen eines Objektattributs das gel?schte Objektattribut privat ist, wird es
12.set_state()
Wird aufgerufen, wenn var_export aufgerufen wird. Verwenden Sie den Rückgabewert von set_state als Rückgabewert von var_export. 13.autoload()Wenn beim Instanziieren eines Objekts die entsprechende Klasse nicht vorhanden ist, wird diese Methode verwendet.Der folgende Editor bietet Ihnen eine ausführliche Diskussion über
PHP-objektorientierte h?ufig verwendete Schlüsselw?rter und magische Methoden . Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor und werfen wir einen Blick darauf
H?ufig verwendete Schlüsselw?rter in PHP objektorientiert
final
1. Final kann keine Mitgliedsattribute ?ndern (dieses Schlüsselwort wird nicht für Konstanten in Klassen verwendet) 2. Final kann nur Klassen und Methoden ?ndernFunktion:
Mit final ge?nderte Klassen k?nnen nicht von Unterklassen geerbt werden Mit final ge?nderte Methoden k?nnen nicht von Unterklassen überschrieben werden Wird verwendet, um die Existenz von Klassen einzuschr?nken geerbt, Methoden Wenn nicht überschrieben, verwenden Sie final<?php //final修飾的類不能被繼承 final class Person{ var $name; var $age; var $sex; function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function fun1(){ echo $this->name; } } //Student類繼承類用final修飾的Person類,所以會(huì)報(bào)錯(cuò) class Student extends Person{ } $stu=new Student("zs",20,"nan"); $stu->fun1(); ?>
static (statisches Schlüsselwort)
1. Verwenden Sie static, um Mitgliedseigenschaften zu ?ndern und Mitgliedsmethoden k?nnen die Klasse nicht ?ndern2. Mit Statik ge?nderte Mitgliedsattribute k?nnen von allen Objekten derselben Klasse gemeinsam genutzt werden3 Statische Daten werden im Datensegment im Speicher gespeichert (initialisiert). statisches Segment) 4. Statische Daten werden dem Speicher zugewiesen, wenn die Klasse in Zukunft verwendet wird, werden sie direkt aus dem Datensegment abgerufen 5. Was wird in der Klasse geladen? Solange diese Klasse im Programm verwendet wird (dieser Klassenname erscheint) 6 Statische Methoden (statische modifizierte Methoden) k?nnen nicht auf nicht statische Mitglieder zugreifen (auf statische Mitglieder kann in nicht statischen Methoden zugegriffen werden) Da auf nicht-statische Mitglieder über Objekte zugegriffen werden muss, muss $this für den Zugriff auf interne Mitglieder verwendet werden. Statische Methoden müssen nicht mit Objekten aufgerufen werden, daher gibt es kein Objekt und $this kann kein Objekt darstellen. Es ist nicht statisch. Mitglieder müssen auch Objekte verwenden Wenn Sie sicher sind, dass in einer Methode keine nicht statischen Mitglieder verwendet werden, k?nnen Sie diese Methode als statische Methode deklarieren Hinweis: Statische Mitglieder müssen Klassennamen verwenden. Für den Zugriff dürfen Sie keineObjekte erstellen und keine Objekte für den Zugriff verwenden.
Klassenname::statische MitgliederWenn Sie statische Mitglieder verwenden in eine Klasse, Sie k?nnen self verwenden, um diese Klasse darzustellenconst
1 Es k?nnen nur Mitgliedsattribute ge?ndert werden 2. Verwenden Sie const<, um konstante Attribute in einer Klasse zu deklarieren ??>3. Die Zugriffsmethode ist dieselbe wie bei statischen Mitgliedseigenschaften (verwenden Sie Klassenname::constant au?erhalb der Klasse und self::constant innerhalb der Klasse)
4. Konstanten müssen bei der Deklaration Anfangswerte erhalten
<?php //定義一個(gè)類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國(guó)"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function getCountry(){ //如果在類中使用靜態(tài)成員,可以使用self代表本類 return self::$country; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } protected function eat(){ echo "吃飯!<br>"; } function run(){ //在類的內(nèi)部使用常量 self::常量 echo self::RUN."<br>"; } //聲明靜態(tài)的方法 static function hello(){ echo "你好<br>"; } }
Magische Methoden, die üblicherweise in PHP objektorientiert verwendet werden
call() Funktion: Beim Aufruf einer Methode, die im Objekt nicht vorhanden ist, erscheint ein Systemfehler und dann das Programm wird beendet.
Wann automatisch aufgerufen werden soll: Der Aufruf erfolgt automatisch, wenn eine Methode aufgerufen wird, die in einem Objekt nicht vorhanden ist.
Behandelt einige nicht vorhandene Fehleraufrufe.
Diese Methode erfordert zwei Parameter
<?php //定義一個(gè)類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國(guó)"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function getCountry(){ //如果在類中使用靜態(tài)成員,可以使用self代表本類 return self::$country; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } protected function eat(){ echo "吃飯!<br>"; } function run(){ //在類的內(nèi)部使用常量 self::常量 echo self::RUN."<br>"; } //處理一些不存在的錯(cuò)誤調(diào)用 //就會(huì)在調(diào)用一個(gè)對(duì)象中不存在的方法時(shí)就會(huì)自動(dòng)調(diào)用 function call($methodName,$args){ //$methodName調(diào)用不存在方法的方法名 $args里面的參數(shù) echo "你調(diào)用的方法{$methodName}(參數(shù):"; print_r($args); echo ")不存在<br>"; } //聲明靜態(tài)的方法 static function hello(){ echo "你好<br>"; } } $p=new Person("張三",20,"女"); $p->test(10,20,30); $p->demo("aa","bb"); $p->say(); ?>
toString() wird automatisch aufgerufen, wenn eine Objektreferenz direkt ausgegeben wird, um schnell den durch a dargestellten Maximalwert zu erhalten string. Schnelle Methode
<?php //定義一個(gè)類“人們” class Person{ protected $name; protected $age; protected $sex; static $country="中國(guó)"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function toString(){ return self::$country."<br>{$this->name}<br>{$this->age}<br>{$this->sex}<br>".self::RUN; } } $p=new Person("張三",21,"女"); echo $p; ?>
clone()Klonobjekt wird mit clone() verarbeitet
Original ( ursprüngliches Objekt)
Kopieren (kopiertes Objekt)
clone() ist eine Methode, die automatisch beim Klonen eines Objekts aufgerufen wird
Sobald ein Objekt erstellt wird, muss es initialisiert werden Die Aktion ?hnelt dem Konstruktor construct
在clone()方法中的$this關(guān)鍵字代表的是復(fù)本的對(duì)象,$that代表原本對(duì)象
<?php //定義一個(gè)類“人們” class Person{ var $name; protected $age; protected $sex; static $country="中國(guó)"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function clone(){ $this->name="王五"; $this->age=18; $this->sex="男"; } function destruct(){ echo $this->name."<br>"; } } $p=new Person("張三",21,"女"); $p->say(); //這并不能叫做克隆對(duì)象,因?yàn)樵谖鰳?gòu)時(shí)只析構(gòu)一次 /*$p1=$p; $p1->name="李四"; $p1->say();*/ $p1= clone $p; $p1->say(); ?>
autoload()
注意:其它的魔術(shù)方法都是在類中添加起作用,這是唯一一個(gè)不在類中添加的方法
只要在頁(yè)面中使用到一個(gè)類,只要用到類名,就會(huì)自動(dòng)將這個(gè)類名傳給這個(gè)參數(shù)
<?php function autoload($className){ include "./test/".$className.".class.php"; } $o=new One; $o->fun1(); $t=new Two; $t->fun2(); $h=new Three; $h->fun3(); ?>
test里的文件
one.class.php
<?php class One{ function fun1(){ echo "The Class One<br>"; } } ?>
two.class.php
<?php class Two{ function fun2(){ echo "The Class Two<br>"; } } ?>
three.class.php
<?php class Three{ function fun3(){ echo "The Class Three<br>"; } } ?>
對(duì)象串行化(序列化):將一個(gè)對(duì)象轉(zhuǎn)為二進(jìn)制串(對(duì)象是存儲(chǔ)在內(nèi)存中的,容易釋放)
使用時(shí)間:
1.將對(duì)象長(zhǎng)時(shí)間存儲(chǔ)在數(shù)據(jù)庫(kù)或文件中時(shí)
2.將對(duì)象在多個(gè)PHP文件中傳輸時(shí)
serialize(); 參數(shù)是一個(gè)對(duì)象,返回來(lái)的就是串行化后的二進(jìn)制串
unserialize(); 參數(shù)就是對(duì)象的二進(jìn)制串,返回來(lái)的就是新生成的對(duì)象
sleep()
是在序列化時(shí)調(diào)用的方法
作用:就是可以將一個(gè)對(duì)象部分串行化
只要這個(gè)方法中返回一個(gè)數(shù)組,數(shù)組中有幾個(gè)成員屬性就序列化幾個(gè)成員屬性,如果不加這個(gè)方法,則所有成員都被序列化
wakeup()
是在反序列化時(shí)調(diào)用的方法
也是對(duì)象重新誕生的過(guò)程
<?php //定義一個(gè)類“人們” class Person{ var $name; protected $age; protected $sex; static $country="中國(guó)"; //聲明一個(gè)常量 const RUN="走"; //構(gòu)造方法 function construct($name,$age,$sex){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名字:{$this->name},我的年齡:{$this->age},我的性別:{$this->sex}。<br>"; } function clone(){ $this->name="王五"; $this->age=18; $this->sex="男"; } //是在序列化時(shí)調(diào)用的方法,可以部分串行化對(duì)象 function sleep(){ return array("name","age"); } //是在反序列化時(shí)調(diào)用的方法,也是對(duì)象重新誕生的過(guò)程??梢愿淖兝锩娴闹? function wakeup(){ $this->name="sanzhang"; $this->age=$this->age+1; } function destruct(){ } } ?>
read.php
<?php require "11.php"; $str=file_get_contents("mess.txt"); $p=unserialize($str); echo $p->say(); ?>
write.php
<?php require "11.php"; $p=new Person("張三",18,"男"); $str=serialize($p); file_put_contents("mess.txt",$str); ?>
Das obige ist der detaillierte Inhalt vonAusführliche Erl?uterung h?ufig verwendeter Schlüsselw?rter und magischer Methoden in PHP objektorientiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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)

Hei?e Themen

Die Methode, um die aktuelle Sitzungs -ID in PHP abzurufen, besteht darin, die Funktion seision_id () zu verwenden. Sie müssen jedoch Session_start () aufrufen, um sie erfolgreich zu erhalten. 1. CALL Session_Start (), um die Sitzung zu starten; 2. Verwenden Sie Session_id (), um die Sitzungs -ID zu lesen und eine Zeichenfolge auszugeben, die wie ABC123DEF456GHI789 ?hnelt; 3. Wenn die Rückgabe leer ist, prüfen Sie, ob Session_Start () fehlt, ob der Benutzer zum ersten Mal zugreift oder ob die Sitzung zerst?rt wird. V. Stellen Sie sicher, dass die Sitzung korrekt aktiviert ist und die ID erfolgreich erhalten werden kann.

Um Substrings aus PHP -Zeichenfolgen zu extrahieren, k?nnen Sie die Substr () -Funktion verwenden, die Syntax -Substr (String $ String, int $ start, int $ l?nge = null) ist, und wenn die L?nge nicht angegeben ist, wird sie am Ende abgefangen. Bei der Verarbeitung von Multi-Byte-Zeichen wie Chinesisch sollten Sie die Funktion mb_substr () verwenden, um verstümmelte Code zu vermeiden. Wenn Sie die Zeichenfolge nach einem bestimmten Trennzeichen abfangen müssen, k?nnen Sie exploit () oder substr () zum Implementieren verwenden, z. B. das Extrahieren von Dateinamenverl?ngerungen oder Dom?nennamen.

UnittestinginphpinvolvesverifikationIndividualCodeUnits ?hnliche Funktionen-SetupphpunitviaComposer, CreateTeTeTD-Verzeichnis und Konfigurationsthearrange-Assertpat, writestcasesFoughingthearrarroadandhpunit.xml.2), writestcasesflowingthearrrange

In PHP besteht die h?ufigste Methode darin, die Zeichenfolge mithilfe der Funktion exploit () in ein Array aufzuteilen. Diese Funktion unterteilt die Zeichenfolge in mehrere Teile durch den angegebenen Trennzeichen und gibt ein Array zurück. Die Syntax ist Exploit (Separator, String, Grenze), wobei der Trennzeichen der Trennzeichen ist, die Zeichenfolge ist die ursprüngliche Zeichenfolge und die Grenze ist ein optionaler Parameter, um die maximale Anzahl von Segmenten zu steuern. Zum Beispiel $ str = "Apple, Banane, Orange"; $ arr = explode (",", $ str); Das Ergebnis ist ["Apple", "Bana

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

STD :: CHRONO wird in C verwendet, um die Zeit zu verarbeiten, einschlie?lich des Erhaltens der aktuellen Zeit, der Messung der Ausführungszeit, der Betriebszeit und -dauer und der Formatierungsanalysezeit. 1. Verwenden Sie std :: chrono :: system_clock :: Now (), um die aktuelle Zeit zu erhalten, die in eine lesbare Zeichenfolge konvertiert werden kann, aber die Systemuhr ist jedoch m?glicherweise nicht eint?nig. 2. Verwenden Sie STD :: Chrono :: Steady_clock, um die Ausführungszeit zu messen, um die Monotonie zu gew?hrleisten, und umwandeln Sie sie durch Duration_cast in Millisekunden, Sekunden und andere Einheiten; 3. Zeitpunkt (Time_Point) und Dauer (Dauer) k?nnen interoperabel sein, aber die Aufmerksamkeit der Einheitenkompatibilit?t und der Uhr -Epoche (Epoche) sollte beachtet werden.

NeuestaticbindingInphpallowsStatic :: TorefertotheclassinitialcalledatruntimininHeritancescenarios.vorphp5.3, self :: ImmerReferenceTtheClasswherethodhemethemethemethemetheDodwasdefined, UryingChildCass :: Sayhello () Toutput "Elternklasse"

Um eine Sitzungsvariable an eine andere Seite zu übergeben, besteht der Schlüssel darin, die Sitzung korrekt zu starten und den gleichen $ _Session -Schlüsselnamen zu verwenden. 1. Bevor Sie Sitzungsvariablen für jede Seite verwenden, muss sie als Session_start () bezeichnet und vor dem Skript platziert werden. 2. Setzen Sie Sitzungsvariablen wie $ _Session ['Benutzername'] = 'Johndoe' auf der ersten Seite; 3. Nachdem Sie Session_start () auf einer anderen Seite aufgerufen haben, greifen Sie auf die Variablen über denselben Schlüsselnamen zu. 4. Stellen Sie sicher, dass Session_Start () auf jeder Seite aufgerufen wird, vermeiden Sie im Voraus, Inhalte auszugeben, und überprüfen Sie, ob der Sitzungsspeicher auf dem Server beschreibbar ist. 5. Verwenden Sie SES
