Maison  >  Article  >  développement back-end  >  Quelles sont les différences entre php et c++

Quelles sont les différences entre php et c++

藏色散人
藏色散人original
2021-12-15 09:26:282100parcourir

Les différences entre php et c++ sont : 1. PHP est un langage de script exécuté côté serveur, tandis que C++ est un héritage du langage C ; 2. PHP ne prend pas en charge la surcharge en C++ ; interface Différent ; 4. PHP est un langage faiblement typé, donc le polymorphisme de PHP n'est pas aussi évident que celui du C++, etc.

Quelles sont les différences entre php et c++

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.4, ordinateur Dell G3.

Quelles sont les différences entre php et c++ ?

Différence :

Un type Base avec une variable membre protégée (supposée être i), sa sous-classe Derived hérite directement de Base et Derived a une fonction membre. func, son paramètre est de type Base. Cette fonction peut-elle accéder au membre protégé de l'objet Base ? Ce n'est pas possible en C++, mais c'est possible en PHP.

  • À propos de la surcharge :

PHP ne prend pas en charge la surcharge en C++ (que les paramètres soient identiques ou différents entraînera une erreur de définition en double). PHP possède sa propre méthode de surcharge, qui est plus étendue que celle du C++. Il peut non seulement surcharger les fonctions (en utilisant la méthode __call()), mais également surcharger les variables membres (en utilisant __get() et __set() ). En C++, les fonctions ne peuvent être surchargées, et les seules méthodes de surcharge sont : différents types de paramètres et différents modificateurs de fonction (const).

  • À propos du résumé et de l'interface

Il existe ces deux modificateurs en PHP, car PHP ne prend pas en charge l'héritage multiple d'une classe normale, l'interface est donc utilisée pour implémenter l'héritage multiple. La classe Abstract existe également en C++, mais la méthode d'implémentation est différente. La fonction virtuelle pure est utilisée en C++ pour indiquer que cette classe est une classe abstraite et ne peut pas être instanciée seule. En PHP, vous pouvez non seulement utiliser le modificateur de fonction abstract (de plus, la classe doit également être marquée avec abstract) pour indiquer cette signification, mais vous pouvez également utiliser uniquement le modificateur abstract pour modifier la classe afin d'indiquer plus directement qu'il s'agit d'un classe abstraite. De plus, la fonction virtuelle pure en C++ n'est pas limitée par le type d'accès, elle sera considérée comme publique ; alors que la fonction abstraite en PHP ne peut pas être déclarée comme privée, c'est tout.

  • Polymorphisme

Parce que PHP est un langage faiblement typé, son polymorphisme se reflète partout, ce qui fait que son polymorphisme n'est pas aussi évident qu'en C++. Par exemple, en PHP, les fonctions de la classe de base peuvent être considérées comme toutes virtuelles, il n'est donc pas nécessaire d'ajouter de modificateurs. Les fonctions de la sous-classe portant le même nom que la classe de base seront appelées dynamiquement, mais c'est différent. en C++. Si la fonction dans la classe de base Si cette fonction n'ajoute pas le modificateur virtuel, la fonction du même nom dans la sous-classe ne sera pas appelée dynamiquement, mais ne pourra être appelée que statiquement.

  • La surcharge des opérateurs

n'existe pas en PHP mais existe en C++. L'accent est mis sur l'opérateur ==, qui peut être utilisé sur n'importe quel type en PHP, même si le type n'a pas sa propre fonction surchargée == (comme en C++). Pour la comparaison d'objets en PHP, == signifie que les attributs et les valeurs des deux objets sont les mêmes, et que les types sont également les mêmes ; PHP a également un opérateur ===, ce qui signifie qu'ils font référence au même. objet, qui est très similaire à Java.

  • mot-clé final

Ce mot-clé existe en PHP, ce qui signifie que cette fonction ne peut pas être surchargée (si elle est utilisée pour modifier une fonction), ou que la classe ne peut pas être héritée (si une classe est modifiée avec une classe ). Il n’existe pas de mot-clé de ce type en C++ et cet effet ne peut pas être simulé.

  • Affectation et copie d'objets

Il existe environ trois façons de copier ou d'attribuer en C++.

L'une est l'affectation du pointeur, c'est-à-dire p1 = &obj, qui est équivalente à l'opération d'affectation en PHP et Java.

L'autre est l'affectation par membre, ce qui se produit lorsque obj1 = obj2, et une exécution superficielle est effectuée par défaut ; La copie a le même effet que le clonage en PHP. Il peut effectuer votre copie complète ou d'autres copies personnalisées en surchargeant l'opération de copie d'affectation, ce qui est équivalent à la fonction membre __clone() en PHP

La troisième est l'initialisation par membre, c'est-à-dire que lors du passage des paramètres, elle s'exécute automatiquement lors du retour ; la valeur est passée ou lorsque le conteneur contenant l'objet est initialisé. Vous pouvez contrôler son effet en définissant vous-même le constructeur de copie.

Le constructeur de copie n'est presque jamais utilisé en PHP car son transfert se fait entièrement par référence, pas une copie directe de l'objet.

Introduction à PHP :

PHP (PHP : Hypertext Preprocessor) est un "préprocesseur hypertexte". C'est un langage de script exécuté côté serveur et peut être embarqué dans du HTML. La syntaxe PHP a appris le langage C, a absorbé les fonctionnalités de plusieurs langages Java et Perl pour développer sa propre syntaxe unique et a continué à s'améliorer en fonction de leurs points forts, tels que la programmation orientée objet de Java. Le langage a été créé à l'origine pour permettre aux développeurs de rédiger rapidement des sites Web de haute qualité. [1-2] PHP prend en charge le développement orienté objet et orienté processus et est très flexible dans son utilisation.

Introduction au C++ :

C++ est l'héritage du langage C. Il peut non seulement effectuer une programmation procédurale du langage C, mais peut également effectuer une programmation basée sur des objets caractérisée par des types de données abstraits, et peut également effectuer une programmation orientée objet caractérisée par l'héritage et le polymorphisme. Bien que le C++ soit efficace en programmation orientée objet, il peut également effectuer une programmation basée sur des processus. Par conséquent, le C++ peut être adapté à différentes tailles en fonction de la taille du problème auquel il s'adapte.

C++ possède non seulement les caractéristiques pratiques d'un fonctionnement informatique efficace, mais s'engage également à améliorer la qualité de programmation des programmes à grande échelle et les capacités de description des problèmes des langages de programmation.

Apprentissage recommandé : "Tutoriel vidéo PHP"

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