In diesem Artikel geht es hauptsächlich um die privaten Eigenschaften externer Anrufklassen, die einen gewissen Referenzwert haben. Interessierte Freunde können sich darüber informieren und hoffen, Ihnen zu helfen.
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 Die Klasse 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 Tutorials:
PHP-Video-TutorialDas obige ist der detaillierte Inhalt vonPHP lernt private Eigenschaften externer aufrufender Klassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!