Les propriétés et méthodes statiques (y compris statiques et non statiques) n'ont qu'un seul emplacement en mémoire (plutôt que des propriétés statiques, il y a autant de propriétés qu'il y a d'objets instanciés).
(Tutoriel recommandé : Tutoriel graphique php)
Exemple :
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以上会提示 ?>
(Tutoriel vidéo recommandé : Tutoriel vidéo php )
Résumé :
(1) Les propriétés statiques peuvent être appelées sans instanciation. Étant donné que les attributs statiques sont stockés dans la classe, la méthode appelante est "nom de classe :: nom d'attribut"
(2) Les méthodes statiques peuvent être appelées sans instanciation. Comme ci-dessus
(3) Les méthodes statiques ne peuvent pas appeler de propriétés non statiques. Parce que les propriétés non statiques doivent être instanciées et stockées dans l'objet ;
(4) Les méthodes statiques peuvent appeler des méthodes non statiques en utilisant le mot-clé self. En php, une fois qu'une méthode est appelée self::, elle est automatiquement convertie en méthode statique
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!