Maison > développement back-end > tutoriel php > PHP : non, ce n'est pas possible

PHP : non, ce n'est pas possible

WBOY
Libérer: 2024-07-19 14:14:01
original
808 Les gens l'ont consulté

PHP: no, it

Vous pouvez ajouter « encore » à ce titre ! Parfois, les choses sont ce qu'elles sont simplement parce que personne ne sait comment faire mieux.

Cependant, cela ne veut pas dire que tout est une bonne idée.

PHP ne prend pas en charge l'héritage multiple

Vous ne pouvez tout simplement pas faire ce qui suit :

class Child extends Parent1, Parent2 {}
Copier après la connexion

Cependant, de nombreux développeurs penseraient qu'il existe de meilleures approches, comme utiliser des interfaces pour forcer les classes à implémenter des comportements spécifiques.

Notez que vous pouvez toujours appliquer une sorte d'héritage multiple à ces interfaces (si cela a vraiment du sens dans votre cas) :

interface A {}
interface B {}
interface C extends A, B {}
Copier après la connexion

Cependant, ce n'est pas pour moi le meilleur argument contre l'héritage multiple. De nombreux langages de programmation se concentrent sur la simplicité et la lisibilité plutôt que sur la complexité.

L'introduction de l'héritage multiple pourrait conduire à de nombreux abus, sans parler du problème Diamonds, qui serait problématique pour les langages de haut niveau comme PHP.

Il est préférable que vous puissiez éviter la complexité inutile.

PHP ne prend pas en charge le multithreading

De nombreux langages de programmation fournissent des outils intégrés pour exécuter plusieurs threads en même temps (par exemple, Java, C++).

Pthreads a tenté d'introduire le multi-threading en PHP mais Joe Watkins le créateur de pthreads et parallèle a annoncé en février 2019 que :

pthreads ne sera plus maintenu après PHP 7.4 en raison de défauts architecturaux.

Source : Documentation PHP - phtreads

Si vous souhaitez creuser davantage, vous pouvez vérifier parallèle, qui s'inspire de la concurrence Go.

Même si le parallèle est plutôt cool, avez-vous vraiment besoin d'une telle complexité dans votre cas ?

Si vous avez besoin d'un mécanisme intégré pour le traitement asynchrone, c'est désormais possible avec Fibers (depuis PHP 8.1).

Les fibres permettent d'écrire des fonctions interruptibles.

Bien que les fibres soient plutôt cool, avez-vous vraiment besoin d'une telle complexité dans votre cas ?

L'utilisation de solutions tierces telles que ReactPHP ou Swoole pourrait être un meilleur choix, surtout si vous n'avez besoin que d'une boucle d'événements.

Mieux que cela, vous pouvez créer un mécanisme de file d'attente capable de gérer les messages et de réessayer les tâches ayant échoué.

Le composant HTTP Client de Symfony prend également en charge diverses opérations asynchrones (par exemple, requêtes/réponses asynchrones simultanées en streaming et multiplexées).

PHP n'est pas destiné au traitement en temps réel

PHP est un langage interprété, incompatible avec des opérations et des systèmes intensifs qui nécessitent une faible latence et une prévisibilité élevée.

Bien que cela soit vrai, pourquoi utiliseriez-vous PHP pour le trading haute fréquence, le streaming, les jeux en ligne ou la supervision de haut niveau de machines et de processus ?

Conclure

PHP est destiné au Web et à de nombreuses autres utilisations créatives que vous connaissez peut-être.

J'espère qu'il conservera sa simplicité, car c'est définitivement une fonctionnalité.

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!

source:dev.to
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