En PHP, les propriétés membres et les méthodes membres modifiées par le mot-clé static sont appelées propriétés statiques et méthodes statiques. La syntaxe d'accès aux propriétés statiques et aux méthodes statiques est "nom de classe :: $ static property" et "nom de classe :: static". méthode()".
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
En PHP, les propriétés membres et méthodes membres modifiées par le mot clé static sont appelées propriétés statiques et méthodes statiques, ici vous peuvent Ils sont collectivement appelés membres statiques. Les membres statiques d'une classe sont différents des membres généraux de la classe. Les membres statiques ne seront pas instanciés en objets, ce qui signifie que nous n'avons pas besoin d'instancier une classe pour accéder aux membres statiques via la classe. .
Il est facile de déclarer des variables statiques dans une classe. Nous pouvons ajouter un mot-clé static avant un membre ordinaire de la classe pour transformer ce membre ordinaire en membre statique. De cette façon, nous pouvons accéder directement à ces membres statiques dans la classe sans instancier la classe. Le format de syntaxe pour accéder aux membres statiques est le suivant :
类名::$静态属性 类名::静态方法()
Le symbole ::
est appelé opérateur de résolution de portée, qui est utilisé pour accéder aux membres statiques, aux méthodes statiques et aux constantes, et peut également être utilisé pour remplacer les membres d'une classe et de méthodes. ::
符号被称为范围解析操作符,用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。
如果要在类内部的成员方法中访问静态属性,只要在静态属性的名称前加上操作符self::
即可。
下面通过一个简单的示例演示一下静态成员的定义:
<?php header("Content-type:text/html;charset=utf-8"); class Website { static public $name = 'PHP中文网<br>'; public $title = 'PHP教程'; public static function url() { echo self::$name; echo 'https://www.php.cn/<br>'; echo $this -> title; } } Website::url(); ?>
运行结果如下:
注意:在静态方法中,只能调用静态变量,不能调用普通变量;而普通方法则可以调用静态变量。
使用静态成员,除了可以不需要实例化对象外,另一个作用就是在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用,这一点和我们前面介绍的静态变量相似。
【示例】声明一个静态变量 $num,然后声明一个方法,在方法的内部调用静态变量并给变量的值加 1;然后,实例化类中的对象,最后,调用类中的方法。
<?php header("Content-type:text/html;charset=utf-8"); class Website { static public $num = 0; public function add() { echo '$num 的值为:' . self::$num; self::$num++; } } $num1 = new Website(); $num1 -> add(); echo '<br>'; $num2 = new Website(); $num2 -> add(); ?>
运行结果如下:
静态成员不用实例化对象,当类第一次被加载时就已经分配了内存空间,所以直接调用静态成员的速度要更快一些。但如果静态成员声明得过多,空间一直被占用,反而影响系统的运行速度。
说明:
子类可以重写父类的静态方法.
方法内访问静态变量需要用::符号. 不能用$this;
静态方法和静态变量都会被子类继承.
静态变量不能由->
访问, 而是由 ::
self::
avant le nom de la propriété statique. rrreee
Les résultats d'exécution sont les suivants :->
est accessible, mais est accessible par ::
(double deux-points) 🎜🎜🎜🎜L'objet peut appeler directement le méthode membre statique via le nom de l'objet->, ceci et l'appel des méthodes ordinaires sont les mêmes.🎜🎜🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo 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!