html - Pourquoi les classes PHP doivent-elles être instanciées?
我想大声告诉你
我想大声告诉你 2017-05-24 11:34:11
0
8
726

J'ai appris la structure MVC aujourd'hui et j'ai découvert que lors de l'appel de méthodes dans une classe dans le code, la classe doit d'abord être instanciée, et enfin la méthode de la classe est appelée

Par exemple :

$xxxxx = new xxxxx();
$xxxxx->ccc('hello wolrd');

Mais ne peut-il pas être appelé directement comme suit ?

xxxxx::ccc('hello wolrd');

Pourquoi doit-il être instancié ? Que nous apporte l’instanciation ? Quels sont les avantages par rapport aux appels directs ? Demandez à Dieu de clarifier mes doutes

我想大声告诉你
我想大声告诉你

répondre à tous(8)
迷茫

->,插入式解引用操作符(infix dereference operator),将对象的引用指向对象,例如对象->对象的方法。
::,作用域解析操作符(Scope Resolution operator),用于调用类的静态成员变量或是类之间的调用。
详见博文。
也是说 $xxxxx->ccc('hello wolrd'); 为调动类中的普通方法,要先实例化类的实例。
xxxxx::ccc('hello wolrd') Pour appeler une méthode statique dans une classe, elle peut être appelée directement sans instancier la classe.


Après avoir instancié une classe, vous pouvez accéder aux méthodes et propriétés de la classe.
Les méthodes statiques peuvent effectuer indépendamment une opération sans état.
Plus lié aux méthodes statiques et aux méthodes instanciées.

给我你的怀抱

Idées de programmation POO, donnez un exemple

$person=new Person();
$person.username="godtoy";

这种方式,每一个都是一个实例

L'avantage d'utiliser static est que c'est plus pratique s'il s'agit d'une classe d'outils

Utils::max(val1,val2);
为情所困

Une affiche très mignonne et les questions qu'il a posées sont également très mignonnes. Pourquoi voudriez-vous vous embêter avec ce genre de questions...

.

Évidemment, la méthode suivante peut également être appelée, les deux sont possibles, mais la différence est que seules les fonctions membres statiques de la classe peuvent être appelées dans la méthode suivante
Quant à la raison pour laquelle elle doit être instanciée, je suppose que le questionneur ne le fait pas Je ne comprends pas du tout. Qu'est-ce qu'un cours ?
Je ne suis vraiment pas humble, je ne peux pas donner trop d'explications philosophiques et détaillées, je peux seulement dire

Une classe est une abstraction d'un objet, et un objet est une instance d'une classe, tout comme les êtres humains sont une abstraction de tous les gens. Par exemple, si les gens veulent mourir, ils mourront. humains (classes). Maintenant un enfant (instanciation) est né, alors vous mourrez si vous cherchez la mort, ce qui est efficace pour cet enfant (objet)

La raison pour laquelle nous souhaitons résumer de manière abstraite les caractéristiques des êtres humains est pour nous permettre de mieux apprendre à le faire. Par exemple, si vous êtes médecin, vous pouvez mieux traiter chaque individu (la clé est d'instancier un Objet). , bien sûr chaque individu est différent, vous pouvez lire la documentation et d'autres réponses plus détaillées

我想大声告诉你

Principalement à des fins orientées objet, vous pouvez instancier un objet via certains paramètres. Vous effectuez un appel statique et l'objet n'existe pas

.
小葫芦

 
L'instanciation est comme un téléviseur avec de nombreux programmes. Maintenant, vous voulez regarder la télévision, vous devez allumer le téléviseur. Ensuite, vous devez allumer le bouton de commutation du téléviseur. nouveau mot-clé pour instancier cet objet afin que nous puissions regarder des programmes télévisés et utiliser les fonctions à l'intérieur du téléviseur.

Par rapport aux appels directs, les appels d'instanciation peuvent donner accès aux méthodes à l'intérieur de la classe. Modificateurs d'accès :

  • public (public, par défaut)

  • protégé

  • privé

Et l'appeler directement ne nécessite pas de changement d'instance, il est simplement pratique à utiliser.

小葫芦

Supposons que vous définissiez une classe Voiture, alors cette classe est un dessin. Vous ne pouvez pas vendre un dessin, vous devez donc nouvelle produire une voiture afin de pouvoir le faire uniquement en. la vente peut-elle être ouverte. Car vous pouvez vous référer à ce dessin pour produire de nombreuses voitures. Car类,那么这个类是一个图纸,你不能拿一个图纸出去卖吧,所以你需要new生产出一辆车,才能卖,才能开。因为你可以参照这个图纸,生产很多车啊。

当然这个Car可能会有一些静态方法或者属性,这是你不需要生产汽车就可以使用的,比如你要看图纸,那就是Car的静态方法show

Bien sûr, cette Voiture peut avoir des méthodes ou attributs statiques, que vous pouvez utiliser sans produire la voiture. Par exemple, si vous voulez voir les dessins, c'est la méthode statique de . Voiture Méthode show. 🎜
滿天的星座

Si vous utilisez une méthode statique, il n’existe pas de constructeur.

迷茫

Vous avez besoin d'un modèle singleton

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!