Maison  >  Article  >  développement back-end  >  Partage d'attributs statiques et d'appels de méthodes statiques en PHP

Partage d'attributs statiques et d'appels de méthodes statiques en PHP

小云云
小云云original
2018-03-21 13:06:061301parcourir

Voici une analyse de l'appel d'attributs statiques et de méthodes statiques en PHP orienté objet. Concernant leur appel (si ils peuvent être appelés et comment les appeler), vous devez comprendre où ils sont stockés dans la mémoire, afin que ce soit très facile à comprendre. 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).

Instance :

<?php
header("content-type:text/html;charset=utf-8");
class Human{
 staticpublic $name = "小妹";
 public$height = 180;
 staticpublic functiontell(){
 echoself::$name;//静态方法调用静态属性,使用self关键词
 //echo $this->height;//错。静态方法不能调用非静态属性
//因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象
 }
 publicfunction say(){
 echoself::$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) 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" Conclusion :

(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. Étant donné que les attributs non statiques doivent être instanciés et stockés 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 self::, elle est automatiquement convertie en méthode statique

Recommandations associées :

Explication détaillée des variables statiques en PHP

Explication détaillée de l'utilisation du mot-clé static en PHP

Explication détaillée de l'utilisation et des précautions du mot-clé static en PHP

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn