Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in PHP-Magic-Konstanten und Zusammenfassung der Codeanweisungen zur Verwendung von Magic-Funktionen

Einführung in PHP-Magic-Konstanten und Zusammenfassung der Codeanweisungen zur Verwendung von Magic-Funktionen

伊谢尔伦
伊谢尔伦Original
2017-07-17 15:18:201334Durchsuche

Magische Konstante

1. LINE
Gibt die aktuelle Zeilennummer in der Datei zurück.

2. DATEI
Gibt den vollständigen Pfad und Dateinamen der Datei zurück. Bei Verwendung innerhalb einer include-Datei wird der Name der Include-Datei zurückgegeben. Ab PHP 4.0.2 enthält FILE immer einen absoluten Pfad, während Versionen davor manchmal einen relativen Pfad enthielten.

3. FUNCTION
Gibt den Funktionsnamen zurück (neu hinzugefügt in PHP 4.3.0). Seit PHP 5 gibt diese Konstante den Namen der Funktion zurück, wie er definiert wurde (Groß-/Kleinschreibung beachten). In PHP 4 ist dieser Wert immer kleingeschrieben.

4. CLASS
Gibt den Namen der Klasse zurück (neu in PHP 4.3.0). Seit PHP 5 gibt diese Konstante den Namen der Klasse zurück, als sie definiert wurde (Groß-/Kleinschreibung beachten). In PHP 4 ist dieser Wert immer kleingeschrieben.

5. METHOD
Gibt den Methodennamen der Klasse zurück (neu hinzugefügt in PHP 5.0.0). Gibt den Namen der Methode so zurück, wie er definiert wurde (Groß-/Kleinschreibung beachten).

Was ist eine magische Funktion?

Die Funktionen am Anfang werden unter bestimmten Bedingungen ausgelöst. ) get() usw.
werden ausgelöst, wenn nicht vorhandene Eigenschaften festgelegt oder abgerufen werden
Was sind die magischen Funktionen
im Allgemeinen gibt es die folgenden magischen Funktionen
construct() destruct( ) get() set() isset() unset() call() callStatic()
sleep() wakeup() toString() set_state() clone( ) autoload()
construct() Beim Instanziieren eines Objekts wird zuerst diese Methode des Objekts aufgerufen.
destruct() Diese Methode wird aufgerufen, wenn ein Objekt gelöscht wird oder wenn die Objektoperation beendet wird.

class test1 { 
public function construct() { 
var_dump(function); 
} 
public function destruct() { 
var_dump(function); 
} 
} 
$t1 = new test1 ; 
unset($t1);

get wird aufgerufen, wenn versucht wird, eine Eigenschaft zu lesen, die nicht existiert.
set wird aufgerufen, wenn versucht wird, einen Wert in eine Eigenschaft zu schreiben, die nicht existiert.
isset wird aufgerufen, wenn versucht wird, eine Eigenschaft zu erkennen, die nicht existiert.
unset wird aufgerufen, wenn versucht wird, eine nicht vorhandene Eigenschaft zu deaktivieren.

class test2 { 
public $name3; 
public function set($key, $value) { 
var_dump(function. ' 
KEY:' 
.$key.' 
Value:' 
.$value); 
} 
public function get($key) { 
var_dump(function. 'KEY:'.$key); 
} 
public function isset($key) { 
var_dump(function. ' KEY:'.$key); 
} 
public function unset($key) { 
var_dump(function. ' KEY:'.$key); 
} 
} 
$t =new test2 ; 
$t->name = "steven"; 
$t->name2; 
$t->name3; 
isset($t->name2); 
isset($t->name3); 
unset($t->name4);

sleep wird aufgerufen, wenn Objekte serialisiert werden
wakeup wird aufgerufen, wenn Objekte deserialisiert werden
Etwas zu beachten:
1. sleep() muss ein Array oder Objekt zurückgeben ( Normalerweise ist $this zurückgegeben), und der zurückgegebene Wert wird als serialisierter
-Wert verwendet.
Wenn dieser Wert nicht zurückgegeben wird, schlägt die Serialisierung fehl. Dies bedeutet auch, dass die Deserialisierung das Weckereignis nicht auslöst.
2. Durch die Serialisierung werden die standardmäßig zugewiesenen Attribute gespeichert. Wenn Sie den Inhalt durch Instanziierung zuweisen möchten, müssen die Attribute im
des von sleep() zurückgegebenen Arrays angegeben werden Unterschied zwischen $id und $id2.

class test3 { 
public $name = "steven"; 
public $id = "1"; public $id2; 
public function sleep() { 
var_dump(function); // 序列化不成功.没有返回值.反序列也失败 // 
return array("name"); // 序列化成功.有返回值.反序列成功.id2属性能被恢复 // 
return array("name", "id2");// 序列化成功.有返回值.反序列成功.id2属性不能被恢复 
return array("name"); } 
public function testEcho() { 
var_dump($this->name); 
var_dump($this->id); 
var_dump($this->id2); 
} 
public function wakeup() { 
var_dump(function); 
$this->testEcho(); 
} 
} 
$t3= new test3 ; 
$t3->id2 = uniqid(); 
$t3s = serialize($t3); 
unserialize($t3s);
toString Beim direkten Drucken eines Objekts wird diese Methode aufgerufen

class test4 { 
public function toString() { 
return "toString"; 
} 
} 
$t4 = new test4(); 
echo $t4; 
print $t4; 
var_dump($t4); 
print_r($t4);

call($func, $param) Wann Der Versuch, ein Objekt aufzurufen, das nicht existiert, wird aufgerufen.
Diese Methode muss zwei Parameter haben, der erste ist der Name der aufgerufenen Methode und der zweite ist ein Parameterarray der aufgerufenen Methode.
Es ist zu beachten, dass call() nicht
in einer Instanz aufrufen 🎜 >

class test5 { 
public function call($func, $param) { 
var_dump('Function:'.$func); 
var_dump($param); 
} 
} 
$t5 = new test5; 
$t5->echoTest('xx','xx','xx');
callStatic() wird aufgerufen, wenn versucht wird, eine nicht vorhandene

statische
Methode aufzurufen Diese Methode muss zwei Parameter haben, der erste ist der Name der aufzurufenden Methode , und der zweite Der zweite ist ein Parameterarray der aufgerufenen Methode. Erscheint in PHP5.3

set_state() wird aufgerufen, wenn var_export zum Exportieren einer Instanz verwendet wird. Diese Methode verfügt über einen Parameter, der alle
class test51 { 
public function callStatic($fun, $param) { 
var_dump('Function:'.$func); 
var_dump($param); 
} 
} 
test51::test('xx','xx','xx');
Mitglieder der exportierten Instanz enthält attributes


clone() wird beim Klonen einer Instanz aufgerufen:
class test6 { 
public function set_state($arr){ 
var_dump($arr); 
} 
} 
$t6 = new test6; 
$t6->age = "12"; 
var_export($t6, true); 
var_export($t6); 
eval(' 
$b=' 
.var_export($t6,true).';'); 
print_r($b);
1. In PHP5 werden Zuweisungen zwischen Objekten immer als Adressreferenz übergeben Wenn Sie den tatsächlichen Wert übergeben möchten, müssen Sie das Schlüsselwort clone verwenden.

3. Clone ist nur eine Instanz. Wenn ein Mitgliedsattribut in der Instanz auch eine Instanz ist, wird dieses Mitgliedsattribut weiterhin mithilfe der Referenzmethode
an die neue Instanz übergeben.
// Die Zuweisung zwischen Objekten erfolgt immer per Adressreferenz. Die Altersattribute von $t71 $t72 sind beim Erstellen einer Instanziierung identisch nicht existiert, wird es



heißen

Das obige ist der detaillierte Inhalt vonEinführung in PHP-Magic-Konstanten und Zusammenfassung der Codeanweisungen zur Verwendung von Magic-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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