Heim >Backend-Entwicklung >PHP-Tutorial >So rufen Sie die Funktionen _get und _set aus externen Klassen in PHP auf

So rufen Sie die Funktionen _get und _set aus externen Klassen in PHP auf

不言
不言Original
2018-07-31 09:39:211878Durchsuche

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.

Private Eigenschaften externer aufrufender Klassen

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 __getFunktion 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 &#39;you can get &#39;.$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 &#39;you can get &#39;.$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 &#39;you can get &#39;.$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 &#39;you can get &#39;.$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
__setSehen 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-Framework

Eingehende Analyse der Strpos-Funktion in PHP

Das 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!

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