Maison > Article > développement back-end > Que sont les classes abstraites et les méthodes statiques en php
La classe abstraite en PHP fait référence à une classe avec le mot-clé abstract devant la classe et une méthode abstraite. Elle ne peut pas être instanciée directement ; la méthode statique fait référence à la méthode modifiée par le mot-clé static, static Methods. sont utilisés pour manipuler des propriétés statiques.
Classe abstraite
La classe abstraite signifie l'ajout d'un mot-clé abstrait avant la classe et il existe une méthode abstraite (avant le mot-clé de fonction de méthode de classe Mot-clé abstrait ajouté) classe .
(Tutoriel recommandé : Tutoriel vidéo php)
Les classes abstraites ne peuvent pas être instanciées directement. La classe abstraite définit uniquement (ou implémente partiellement) les méthodes requises par la sous-classe. Les sous-classes peuvent rendre concrète une classe abstraite en en héritant et en implémentant toutes les méthodes abstraites de la classe abstraite.
Si une sous-classe doit être instanciée, elle doit implémenter toutes les méthodes abstraites de la classe abstraite. Si la sous-classe n'implémente pas toutes les méthodes abstraites de la classe abstraite, alors la sous-classe est également une classe abstraite et doit être précédée du mot-clé abstract dans class et ne peut pas être instanciée.
Exemple :
abstract Class AbstractClass { abstract public function A();//这里不要携带body abstract protected function B();//这里不要携带body public function C(){}//这里要携带body } class ClassA extends AbstractClass { public function A(){ echo "Hello,I'm A <br/>"; } protected function B(){ echo "Hello,I'm B <br/>"; } public function E() { echo "Hello,I'm E <br/>"; } }
Méthode statique :
La méthode statique est modifiée par le mot-clé static.
Les méthodes statiques sont utilisées pour exploiter les propriétés statiques. Par conséquent, les propriétés non statiques ne peuvent pas être manipulées dans des méthodes statiques.
Étant donné que les méthodes statiques ne nécessitent pas l'appel d'un objet, la pseudo variable $this n'est pas disponible dans les méthodes statiques.
Comment accéder aux méthodes statiques ?
À l'intérieur de la classe : nom de classe :: méthode statique ou self :: méthode statique
En dehors de la classe : nom de classe :: méthode statique ou instance d'objet->méthode statique
Exemple :
class Person{ public static $nums = 0; // 静态属性的申明 public $age = 0; public function addNum(){ self::$nums++; echo self::$nums; // 在类里面,可用self关键词访问静态属性 echo Person::$nums; // 类可直接访问静态属性 // echo $this->nums; // 报错,静态属性不可以由对象通过 -> 操作符来访问 self::getNum(); // 在类里面,可用self关键词访问静态方法 Person::getNum(); // 类可直接访问静态方法 } public static function getNum(){ // 静态方法 // echo $this->age; // 报错,静态方法里面不能操作非静态属性 echo '真的吗?'.self::$nums; //静态方法中只能操作静态属性 } } $p1 = new Person(); $p1->addNum(); echo $p1::$nums; // 对象实例可以这样访问静态属性 Person::getNum(); // 类可直接访问静态方法 $p1->getNum(); // 对象实例可以这样访问静态方法
Recommandations associées : formation 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!