Maison >développement back-end >Problème PHP >La différence entre les classes et les fonctions php

La différence entre les classes et les fonctions php

(*-*)浩
(*-*)浩original
2019-09-23 16:04:383847parcourir

La programmation orientée objet (POO) a introduit de nombreuses fonctionnalités, rendant la programmation plus complexe. L'encapsulation, l'héritage et le polymorphisme sont les trois éléments de la POO, que l'on ne retrouve pas dans les fonctions des procédures.

La différence entre les classes et les fonctions php

est incarné dans :

1. Encapsulation : classe/interface/public/protégé/privé

2. Héritage : extensions/implémentations (apprentissage recommandé : Programmation PHP du débutant à compétent)

3. Polymorphisme : réécriture de méthode/surcharge de méthode

Nouveau De nouvelles portées de variables ont ont été ajoutés aux classes et aux interfaces, c'est-à-dire que les blocs de code dans les classes et les interfaces ont une portée que les fonctions n'ont pas.

Dans cette portée, vous pouvez définir des variables et des fonctions en tant que membres de classes et d'interfaces, et prendre en charge l'utilisation de mots-clés public/protected/private pour contrôler l'accès à ces membres. Par exemple, public signifie que l'accès externe est. autorisé et protégé signifie que l'accès externe est autorisé pour la classe et ses sous-classes, et privé signifie que l'accès n'est autorisé qu'au sein de la classe.

Une classe doit être déclarée avec le mot-clé class. Une classe est composée d'attributs et de méthodes. Les objets peuvent être instanciés et les classes peuvent être héritées. Généralement, les classes sont utilisées dans les fonctions de programmation orientée objet ; n'ont aucun attribut et sont généralement utilisés de manière orientée processus, écrit pour résoudre un problème spécifique.

Et la POO introduit également les caractéristiques polymorphes de la réécriture de méthode et de la surcharge de méthode, à savoir :

Réécriture de méthode : la liste des paramètres est la même, le corps de la méthode Différent.

Surcharge de méthode : la liste de paramètres est différente et le corps de la méthode est différent.

Le remplacement de méthode repose sur l'héritage, ce qui signifie que la méthode de la sous-classe remplace la méthode de la classe parent. , et le nom de la méthode et la liste des paramètres doivent être identiques.

La surcharge de méthodes ne repose pas sur l'héritage. Il s'agit de deux méthodes ou plus portant le même nom dans la même classe, avec des listes de paramètres différentes. 🎜>

Il convient de noter que seuls les méthodes héritées et remplacées. Les droits d'accès peuvent être conservés ou élargis, mais ne peuvent pas être réduits

Par exemple, il est possible de surcharger la méthode protégée d'une classe parent comme. public dans une sous-classe.

En PHP, car plusieurs méthodes A portant le même nom, donc la surcharge de méthodes comme C++/Java n'est pas prise en charge

Mais PHP offre de la magie. méthodes (__call, __callStatic) pour implémenter indirectement la surcharge de méthodes.

La réécriture de méthodes en PHP ne nécessite pas les mêmes paramètres

PHP ne prend pas en charge l'héritage multiple (héritant de plusieurs classes parents), mais il. peut implémenter plusieurs interfaces et peut également utiliser des fonctionnalités de trait pour prendre en charge indirectement l'héritage multiple.

Certaines personnes pensent que l'héritage augmentera le couplage entre les sous-classes et les classes parentes, elles s'opposent donc à l'héritage. Comme Go ne prend pas en charge l'héritage directement, mais utilise la composition pour remplacer l'héritage. Par exemple, l'injection de dépendances est essentiellement une combinaison d'idées, utilisée pour réaliser le découplage. En PHP, vous pouvez modifier définitivement une classe pour interdire son existence. hérité.

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