Heim > Artikel > Backend-Entwicklung > Wie rufe ich nicht statische Variablen in statischen PHP-Methoden auf?
In PHP können statische Methoden das Schlüsselwort self verwenden, um nicht statische Variablen aufzurufen, z. B. „self::$name“. Nachdem eine Methode „self::“ lautet, wird sie automatisch zu einer statischen Methode.
Empfohlen: „PHP-Video-Tutorial“
Detaillierte Erläuterung des statischen (statischen) Aufrufs nicht statischer Methoden in PHP
Hier analysieren wir den Aufruf statischer statischer Attribute und statischer Methoden in PHP objektorientiert. Bezüglich ihrer Berufung (ob sie aufgerufen werden können und wie man sie ruft) müssen Sie wissen, wo sie im Speicher gespeichert sind, damit es sehr einfach zu verstehen ist. Statische Eigenschaften und Methoden (einschließlich statischer und nicht statischer) haben nur einen Speicherort im Speicher (im Gegensatz zu statischen Eigenschaften gibt es so viele Eigenschaften wie instanziierte Objekte).
Beispiel:
<?php header("content-type:text/html;charset=utf-8"); class Human{ static public $name = "小妹"; public $height = 180; static public function tell(){ echo self::$name;//静态方法调用静态属性,使用self关键词 //echo $this->height;//错。静态方法不能调用非静态属性 //因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象 } public function say(){ echo self::$name . "我说话了"; //普通方法调用静态属性,同样使用self关键词 echo $this->height; } } $p1 = new Human(); $p1->say(); $p1->tell();//对象可以访问静态方法 echo $p1::$name;//对象访问静态属性。不能这么访问$p1->name //因为静态属性的内存位置不在对象里 Human::say();//错。say()方法有$this时出错;没有$this时能出结果 //但php5.4以上会提示 ?>
1. Um statische Eigenschaften aufzurufen, können statische oder nicht statische Methoden aufgerufen werden.
2 aufgerufen werden. Für nicht statische Methoden verwenden Sie das Schlüsselwort self. In PHP wird eine Methode, nachdem sie self:: aufgerufen wurde, automatisch in eine statische Methode umgewandelt3. Statische Methoden können keine nicht statischen Attribute aufrufen. Weil nicht statische Attribute instanziiert und im Objekt gespeichert werden müssen;
Das obige ist der detaillierte Inhalt vonWie rufe ich nicht statische Variablen in statischen PHP-Methoden auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!