Der Inhalt dieses Artikels befasst sich mit dem Aufrufen der Funktionen _get und _set in externen Klassen. Ich hoffe, dass er Freunden in Not helfen kann.
Werfen wir zunächst einen Blick auf die Funktionen __get
und __set
in der PHP-Klasse.
Beim Versuch, eine nicht erreichbare Eigenschaft abzurufen, wird die Klasse verwendet ruft automatisch die __get
Funktion auf.
Beim Versuch, eine nicht erreichbare Eigenschaft festzulegen, ruft die Klasse automatisch die Funktion __set
auf.
Werfen wir zunächst einen Blick auf die Funktion __get
? Versuchen wir, ein erreichbares Attribut zu erhalten:
<?php class A{ public $a=1; private $b=2; function __get($name){ echo 'you can get '.$name; } } $dy = new A(); echo $dy->a; ?>
Sehen Sie sich die Rückgabe an:
1
Kein Problem, nein Rufen Sie die Funktion __get
auf:
<?php class A{ public $a=1; private $b=2; function __get($name){ echo 'you can get '.$name; } } $dy = new A(); echo $dy->b; ?>
, was darauf hinweist, dass die Funktion
hier aufgerufen wird Schauen Sie sich die-Funktion an, verwenden Sie auch zuerst das erreichbare __get
-Attribut: __set
you can get b
public
Schauen Sie sich die Ausgabe an: <?php class A{ public $a; private $b; function __set($name,$val){ echo 'you can get '.$name.$val; } } $dy = new A(); $dy->a = 1; echo $dy->a; ?>
wurde erfolgreich verwendet, kein Problem, dann verwenden wir das private Attribut:
1
Zu diesem Zeitpunkt sehen Sie:
<?php class A{ public $a; private $b; function __set($name,$val){ echo 'you can get '.$name.$val; } } $dy = new A(); $dy->b = 1; echo $dy->b; ?>
Die Funktion
wird hier aufgerufen und weist uns darauf hin, dass wir die privaten Eigenschaften der Klasse nicht verwenden können.Jetzt implementieren wir die externe Verwendung privater Attribute über die Funktion __set
:
you can get b1 PHP Fatal error: Cannot access private property A::$b in /usercode/file.php on line 11
__set
Sehen Sie sich die Ausgabe an: <?php class A{ public $a; private $b; function __set($name,$val){ $this->$name=$val; } function B(){ echo $this->b; } } $dy = new A(); $dy->b = 1; $dy->B(); ?>
zeigt an, dass die Verwendung erfolgreich war.
Verwandte Empfehlungen:
Code für PHP zur Implementierung der PDF-Exportfunktion unter dem Thinkphp-FrameworkEingehende Analyse der Strpos-Funktion in PHPDas obige ist der detaillierte Inhalt vonSo rufen Sie die Funktionen _get und _set aus externen Klassen in PHP auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!