Maison  >  Article  >  développement back-end  >  Que sont les classes abstraites et les méthodes statiques en php

Que sont les classes abstraites et les méthodes statiques en php

王林
王林original
2020-09-29 09:36:142082parcourir

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.

Que sont les classes abstraites et les méthodes statiques en php

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&#39;m A <br/>";
    }
    protected function B(){
        echo "Hello,I&#39;m B <br/>";
    }
    public function E()
    {
        echo "Hello,I&#39;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 &#39;真的吗?&#39;.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!

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
Article précédent:php生成token的方法Article suivant:php 不定参数如何传递