Maison  >  Article  >  développement back-end  >  Comment appeler des variables non statiques dans les méthodes statiques PHP ?

Comment appeler des variables non statiques dans les méthodes statiques PHP ?

青灯夜游
青灯夜游original
2020-09-01 11:45:154118parcourir

En PHP, les méthodes statiques peuvent utiliser le mot-clé self pour appeler des variables non statiques, telles que "self::$name" après qu'une méthode est "self::", elle est automatiquement convertie en statique ; méthode.

Comment appeler des variables non statiques dans les méthodes statiques PHP ?

Recommandé : "Tutoriel vidéo PHP"

Appels statiques (statiques) en PHP Explication détaillée des méthodes non statiques

Nous analysons ici l'appel de propriétés 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).

Exemple :

<?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 Pour appeler des attributs statiques, utilisez self::, qu'il s'agisse d'une méthode statique ou non statique, vous pouvez appeler. attributs statiques ; Conclusion :

2 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

3. Parce que les attributs non statiques doivent être instanciés et stockés dans l'objet

;

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