Maison >développement back-end >Problème PHP >Quelle est la différence entre les méthodes d'instance PHP

Quelle est la différence entre les méthodes d'instance PHP

藏色散人
藏色散人original
2020-08-31 09:21:592302parcourir

Les différences entre les méthodes d'instance PHP sont : 1. Les méthodes statiques ne nécessitent pas de new, tandis que les méthodes d'instance nécessitent new ; 2. Les attributs non statiques ne peuvent pas être appelés dans les méthodes statiques. 3. Les méthodes statiques n'ont qu'une seule copie ; en mémoire, et les ressources sont partagées au sein d'un cycle de vie PHP, et les méthodes d'instance peuvent avoir plusieurs copies en mémoire.

Quelle est la différence entre les méthodes d'instance PHP

Recommandé : "Tutoriel vidéo PHP"

La différence entre les méthodes statiques php et les méthodes d'instance

En programmation orientée objet PHP, on entre souvent en contact avec des classes et des méthodes. Quelle est la différence entre les méthodes statiques et les méthodes d'instance (méthodes non statiques) ? Comment choisir et postuler de manière plus adaptée ? Veuillez consulter la comparaison ci-dessous :

Plusieurs instances ne partagent pas le même espace et les mêmes données tableau >
区别点 静态方法(static) 实例方法
调用 不需要new,类名::方法名。

如:

1User::find();

注意:静态方法中不能调用非静态属性。

需要new。

如:

12$userObj = new User;$userObj->find();
存储 在内存中只有一份,在一个php生命周期内,资源共享。
注意:静态方法、属性随着类的加载而加载,所以过多的静态方法会消耗更多的内存。
每new一次,会开辟一份独立的空间,即在内存中会存在多份的情况。
性能 直接调用,不需要开辟空间等操作,时间上和效率上更胜一筹 需要一些时间进行开辟空间等操作
共享 共享同一个空间,同一份数据,所有某些场景下更适合用静态方法 多个实例不共享同一空间和数据
链式写法 不支持

支持。如:

1$userObj->fields('uid')->where('uid>0')->find();
Point de différence
Méthode statique (statique) Méthode d'instance
Pas besoin de nouveau nom de classe :: nom de méthode.
Par exemple : 1User::find();Remarque : les propriétés non statiques ne peuvent pas être appelées dans les méthodes statiques.
nécessite un nouveau.
Par exemple : 12$userObj = new User;$userObj->find();
Il n'y a qu'une seule copie en mémoire et les ressources sont partagées au sein d'un cycle de vie PHP.
Remarque : les méthodes et attributs statiques sont chargés au fur et à mesure que la classe est chargée, donc trop de méthodes statiques consommeront plus de mémoire.
À chaque nouvelle fois, ce sera être ouvert Un espace indépendant, c'est-à-dire qu'il y aura plusieurs copies dans la mémoire.
Performances Appel direct, pas besoin d'ouvrir d'espace et d'autres opérations, meilleur en termes de temps et d'efficacité Il faudra un certain temps pour ouvrir l'espace et d'autres opérations
Partager Partager le même espace et les mêmes données, les méthodes statiques sont donc plus adaptées dans certains scénarios
Écriture en chaîne Non pris en charge Supporté. Par exemple : 1$userObj->fields('uid')->where('uid>0')->find();

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