Maison > développement back-end > Problème PHP > Quelle est la différence entre les méthodes statiques et les méthodes non statiques en php ?

Quelle est la différence entre les méthodes statiques et les méthodes non statiques en php ?

青灯夜游
Libérer: 2023-03-07 11:40:01
original
4885 Les gens l'ont consulté

Différence : 1. Les méthodes non statiques peuvent accéder à n'importe quel membre de la classe, tandis que les méthodes statiques ne peuvent accéder qu'aux membres statiques de la classe ; 2. Les méthodes statiques sont déjà chargées et allouées lorsque la classe est définie, et méthodes non statiques Les méthodes n'occupent pas de mémoire lorsqu'elles sont définies et la mémoire n'est allouée que lorsqu'elles sont instanciées en tant qu'objets.

Quelle est la différence entre les méthodes statiques et les méthodes non statiques en php ?

Recommandé : "Tutoriel vidéo PHP"

Méthodes statiques et non- La différence entre les méthodes statiques

1. Les méthodes statiques appartiennent à la classe et peuvent être utilisées avant que la classe ne soit instanciée. Autrement dit, vous pouvez utiliser les méthodes de l'objet sans créer un nouvel objet. Par exemple, au format object::fun1();

2. Les méthodes non statiques peuvent accéder à n'importe quel membre de la classe. Les méthodes statiques ne peuvent pas accéder aux membres statiques de la classe. être appelés, mais ils peuvent ajuster les méthodes non statiques (car le système convertit automatiquement les méthodes non statiques en méthodes statiques)

3. Les méthodes statiques sont déjà chargées et allouées lorsque la classe est définie. n'occupent pas de mémoire lorsqu'elles sont définies, seule la mémoire sera allouée lorsqu'elle sera instanciée en tant qu'objet

4. Seules les variables statiques et autres méthodes statiques peuvent apparaître à l'intérieur de static (c'est-à-dire que les méthodes statiques ne peuvent pas appeler des propriétés non statiques . Self:: ne peut pas être utilisé pour appeler des propriétés non statiques) ! Et des mots-clés comme celui-ci ne peuvent pas être utilisés dans les méthodes statiques car ils appartiennent à la classe entière. Pour appeler d'autres méthodes statiques au sein d'une méthode statique, vous pouvez utiliser la forme self:: method name;

5. Les méthodes statiques sont plus efficaces que l'instanciation. L'inconvénient des méthodes statiques est qu'elles ne sont pas automatiquement détruites. , tandis que les instances Celles qui sont modifiées peuvent être détruites

6. Les méthodes statiques et les variables statiques utilisent toujours la même mémoire après leur création, tandis que l'utilisation d'instances créera plusieurs mémoires.

Différence principale :

Les méthodes statiques peuvent être utilisées avant de créer l'objet, et les méthodes non statiques doivent être appelées via l'objet produit par new.

Il n'y a pas de différence évidente dans les performances et l'utilisation de la mémoire entre les méthodes statiques et les méthodes d'instance. La déclaration d'une méthode statique doit être prise en compte sous les trois aspects des champs non statiques du type, des événements, de l'objet. extensions orientées et polymorphisme.

Résumé : Le statique n'a qu'un seul résultat quel que soit le nombre de fois où il est instancié, tandis que le dynamique a des résultats différents à chaque fois.

Pour plus de connaissances liées à la programmation, veuillez visiter : Enseignement de la programmation ! !

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal