Heim > Backend-Entwicklung > PHP-Tutorial > So greifen Sie direkt auf private Eigenschaften von PHP-Instanzobjekten zu

So greifen Sie direkt auf private Eigenschaften von PHP-Instanzobjekten zu

藏色散人
Freigeben: 2023-04-07 19:42:01
nach vorne
2733 Leute haben es durchsucht

Bevor wir die wichtigsten Teile vorstellen, werfen wir zunächst einen Blick auf die objektorientierte Zugriffskontrolle von PHP.

Zugriffskontrolle auf Eigenschaften oder Methoden wird durch das voranstellen der Schlüsselwörter public, protected oder private erreicht. Auf Klassenmitglieder, die als öffentlich definiert sind, kann von überall aus zugegriffen werden. Auf Klassenmitglieder, die als geschützt definiert sind, können sowohl sie selbst als auch ihre Unterklassen und übergeordneten Klassen zugreifen. Als privat definierte Klassenmitglieder können nur von der Klasse aufgerufen werden, in der sie definiert sind.

Klassenattribute müssen als öffentlich, geschützt oder privat definiert werden. Wenn es mit var definiert ist, gilt es als öffentlich.

Bitte sehen Sie sich den folgenden Beispielcode an (aus dem offiziellen Dokument http://php.net/manual/en/lang...:

<?php
/**
 * Define MyClass
 */
class MyClass
{
    public $public = &#39;Public&#39;;
    protected $protected = &#39;Protected&#39;;
    private $private = &#39;Private&#39;;
    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}
$obj = new MyClass();
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello(); // Shows Public, Protected and Private
Nach dem Login kopieren

Wie im obigen Code gezeigt, verwenden wir Wenn ein Instanzobjekt auf eine private oder geschützte Mitgliedseigenschaft einer Klasse zugreift, wird ein schwerwiegender Fehler ausgegeben In unserer normalen Praxis schreiben wir normalerweise eine öffentliche Methode und geben dieses Attribut zurück.

Ich hoffe, dass dies der Fall ist Leg dich nicht damit an, wenn du Code schreibst.

public function getPrivate()
{
    return $this->private;
}
Nach dem Login kopieren
Wie im obigen Code gezeigt, erstellen wir ein neues A-Objekt und weisen dem privaten Attribut a dieser Instanz einen Wert zu.

Erklärung: Weil Objekte derselben Klasse auf die privaten und geschützten Mitglieder der anderen Klasse zugreifen können, auch wenn sie nicht dieselbe Instanz sind. Dies liegt daran, dass die internen Implementierungsdetails dieser Objekte alle gleich sind.

Das obige ist der detaillierte Inhalt vonSo greifen Sie direkt auf private Eigenschaften von PHP-Instanzobjekten zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:segmentfault.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage