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).
(Empfohlenes Tutorial: php-Grafik-Tutorial)
Beispiel:
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以上会提示 ?>
(Video-Tutorial empfohlen: php-Video-Tutorial)
Zusammenfassung:
(1) Statische Eigenschaften können ohne Instanziierung aufgerufen werden. Da die statischen Attribute in der Klasse gespeichert sind, lautet die aufrufende Methode „Klassenname::Eigenschaftsname“
(2) Statische Methoden können ohne Instanziierung aufgerufen werden. Das Gleiche wie oben
(3) Statische Methoden können keine nicht statischen Eigenschaften aufrufen. Da nicht statische Eigenschaften im Objekt instanziiert und gespeichert werden müssen
(4) Statische Methoden können nicht statische Methoden mit dem Schlüsselwort self aufrufen. In PHP wird eine Methode, nachdem sie self:: aufgerufen wurde, automatisch in eine statische Methode umgewandelt
Das obige ist der detaillierte Inhalt vonSo rufen Sie statische Attribute und statische Methoden in PHP auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!