Maison >développement back-end >tutoriel php >PHP utilise le mot-clé static pour déclarer des propriétés statiques et des méthodes statiques.

PHP utilise le mot-clé static pour déclarer des propriétés statiques et des méthodes statiques.

黄舟
黄舟original
2017-07-02 11:59:011837parcourir

PHP utilise le mot-clé static pour déclarer les propriétés statiques et les méthodes statiques

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.

Les propriétés statiques et les méthodes statiques peuvent être utilisées directement sans être instanciées par une classe.

1. Attributs statiques

Les attributs statiques sont des attributs membres modifiés avec le mot-clé static. Ils appartiennent à la classe elle-même et non à une instance de la classe. C'est l'équivalent d'une variable globale stockée dans la classe et accessible n'importe où via la classe.

Les propriétés statiques ne sont pas accessibles via un objet dont la classe a été instanciée.

Le format de syntaxe pour l'accès aux attributs statiques est le suivant :

类名称::$静态属性名称

Le symbole "::" est appelé opérateur d'analyse de plage, qui est utilisé pour accéder Les attributs statiques, les méthodes statiques et les constantes peuvent également être utilisés pour remplacer les membres et les méthodes d'une classe.

Ajoutez l'opérateur "self::" avant le nom de l'attribut statique pour accéder à l'attribut statique dans la méthode membre à l'intérieur de la classe. En utilisant uniquement le nom de la classe ::, vous pouvez appeler des propriétés statiques à l'intérieur de la classe depuis l'extérieur de la classe.

Remarque :

Les propriétés statiques ne sont pas accessibles aux objets via l'opérateur ->

Comme toutes les autres variables statiques PHP, les propriétés statiques ne peuvent être initialisées qu'avec des littéraux ou des constantes, et ne peuvent pas utiliser d'expressions. Ainsi, une propriété statique peut être initialisée avec un entier ou un tableau, mais elle ne peut pas être initialisée avec une autre valeur de retour de variable ou de fonction, ni pointer vers un objet.

2. Méthode statique

La méthode statique est une méthode membre modifiée par le mot-clé static. Puisqu'il n'est limité par aucun objet, vous pouvez référencer directement les méthodes statiques dans la classe sans instancier la classe.

Les méthodes statiques sont accessibles via un objet d'une classe qui a été instanciée.

Le format syntaxique de la référence de méthode statique est le suivant :

类名称::静态方法名称([参数1,参数2,...])

De même, ajoutez l'opérateur "self::" avant le nom de la méthode statique, vous pouvez l'utiliser dans le méthode membre à l’intérieur de la classe Méthodes statiques de référence. En utilisant uniquement le nom de la classe ::, vous pouvez appeler des méthodes statiques à l’intérieur de la classe depuis l’extérieur de la classe.

Remarque :

Dans les méthodes statiques, seules les variables statiques peuvent être appelées, et non les variables ordinaires ;

L'appel statique d'une méthode non statique entraînera une erreur de niveau E_STRICT.

É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.


Conseils

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 Continuez la prochaine fois.

Afin d'être compatibles avec PHP 4, les propriétés statiques et les méthodes statiques sont par défaut publiques si elles ne sont pas spécifiées comme protégées ou privées.

Depuis PHP 5.3.0, vous pouvez utiliser une variable pour appeler dynamiquement une classe, mais la valeur de la variable ne peut pas être les mots-clés self, parent ou static.


Explication

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 fonctionnalité du système. Cette échelle ne peut être véritablement appréhendée que par l’accumulation de pratique !


Exemple

<?php
class website{  static $num="0";                         // 定义静态变量
  public function visit(){                 // 定义visit方法
    echo "您是第".self::$num."位访客!";   // 输出静态变量信息
    self::$num++;                          // 静态变量做自增运算
  }
}

echo &#39;第一次实例化调用:<br />&#39;;
$website=new website();                    // 实例化对象
$website->visit();                         // 调用对象$website的visit()方法
$website->visit();
$website->visit();

echo &#39;<br />第二次实例化调用:<br />&#39;;
$website2=new website();                   // 改变对象句柄实例化对象
$website2->visit();
$website2->visit();
$website2->visit();
?>

Affichez l'effet d'affichage de PHP en utilisant le mot-clé static pour déclarer les propriétés statiques et les méthodes statiques dans le navigateur. Comme le montre l'image ci-dessous :

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