Maison  >  Article  >  développement back-end  >  Que sont les propriétés statiques et les méthodes statiques en php

Que sont les propriétés statiques et les méthodes statiques en php

青灯夜游
青灯夜游original
2022-01-07 18:38:483192parcourir

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()".

Que sont les propriétés statiques et les méthodes statiques en php

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 = &#39;PHP中文网<br>&#39;;
	public $title = &#39;PHP教程&#39;;
	public static function url() {
		echo self::$name;
		echo &#39;https://www.php.cn/<br>&#39;;
		echo $this -> title;
	}

}

Website::url();
?>

运行结果如下:

Que sont les propriétés statiques et les méthodes statiques en php

注意:在静态方法中,只能调用静态变量,不能调用普通变量;而普通方法则可以调用静态变量。

使用静态成员,除了可以不需要实例化对象外,另一个作用就是在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用,这一点和我们前面介绍的静态变量相似。

【示例】声明一个静态变量 $num,然后声明一个方法,在方法的内部调用静态变量并给变量的值加 1;然后,实例化类中的对象,最后,调用类中的方法。

<?php
header("Content-type:text/html;charset=utf-8");
class Website {
	static public $num = 0;
	public function add() {
		echo &#39;$num 的值为:&#39; . self::$num;
		self::$num++;
	}

}

$num1 = new Website();
$num1 -> add();
echo &#39;<br>&#39;;
$num2 = new Website();
$num2 -> add();
?>

运行结果如下:

Que sont les propriétés statiques et les méthodes statiques en php

静态成员不用实例化对象,当类第一次被加载时就已经分配了内存空间,所以直接调用静态成员的速度要更快一些。但如果静态成员声明得过多,空间一直被占用,反而影响系统的运行速度。

说明:

  • 子类可以重写父类的静态方法.

  • 方法内访问静态变量需要用::符号. 不能用$this;

  • 静态方法和静态变量都会被子类继承.

  • 静态变量不能由->访问, 而是由 ::

    Si vous souhaitez accéder à une propriété statique dans une méthode membre à l'intérieur d'une classe, ajoutez simplement l'opérateur self:: avant le nom de la propriété statique.
  • Ce qui suit montre la définition des membres statiques à travers un exemple simple :

    rrreee

    Les résultats d'exécution sont les suivants :
Que sont les propriétés statiques et les méthodes statiques en php

Remarque : dans les méthodes statiques, seules les variables statiques peuvent être appelées et les variables ordinaires ne peuvent pas être appelées ; les méthodes ordinaires peuvent appeler des variables statiques. .

En utilisant des membres statiques, en plus d'éliminer le besoin d'instancier l'objet, une autre fonction consiste à enregistrer les données statiques modifiées après la destruction de l'objet afin qu'il puisse être utilisé la prochaine fois. Ceci est similaire aux variables statiques que nous avons introduites. plus tôt. 🎜🎜【Exemple】Déclarez une variable statique $num, puis déclarez une méthode, appelez la variable statique à l'intérieur de la méthode et ajoutez 1 à la valeur de la variable puis instanciez l'objet dans la classe, et enfin, appelez la méthode dans la classe ; classe. 🎜rrreee🎜Les résultats en cours sont les suivants : 🎜🎜2. png🎜🎜Les membres statiques n'ont pas besoin d'instancier les objets. L'espace mémoire a été alloué lorsque la classe est chargée pour la première fois, donc l'appel direct des membres statiques est plus rapide. Cependant, si trop de membres statiques sont déclarés, l'espace sera occupé en permanence, ce qui affectera la vitesse de fonctionnement du système. 🎜🎜Description : 🎜
    🎜🎜Les sous-classes peuvent être répétées Écrivez une méthode statique de la classe parent. 🎜🎜🎜🎜Vous devez utiliser le symbole :: pour accéder aux variables statiques dans la méthode. Vous ne pouvez pas utiliser $this ; 🎜🎜🎜🎜Les méthodes statiques et les variables statiques seront héritées par les sous-classes. 🎜🎜🎜🎜Les variables statiques ne peuvent pas être utilisées par -> 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!

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