Avant-propos
Un ancien collègue a changé de travail et a été interrogé sur les caractéristiques PHP lors de l'entretien. Je ne l'ai jamais utilisé auparavant, donc je n'y ai pas bien répondu. Je l'ai probablement utilisé plusieurs fois, alors j'y ai réfléchi et j'ai compilé le résumé suivant.
trait
le trait est un attribut ou une méthode spécifique que certaines classes (Classe) devraient avoir, et d'autres classes du même parent devraient éviter d'inclure ces attributs lorsqu'ils sont utilisés. en utilisant des méthodes.
Bien sûr, cela est également lié à la capacité du développeur à abstraire les classes. Certaines personnes ayant de bonnes capacités d'abstraction peuvent réduire l'utilisation des traits, mais cette situation devrait être inévitable, sinon les traits n'ont aucun sens si cela n'a aucun sens. apparaît.
Il existe une autre situation, c'est-à-dire que lors de l'utilisation de traits, cela peut jouer un rôle en contraignant les développeurs et en rappelant aux développeurs de prêter attention à certains attributs des traits qui doivent être appelés pendant le processus de développement et. méthodes.
Les collègues ont soulevé une bonne question, l'interface n'a-t-elle pas aussi ce rôle ?
Pas de précipitation, regardons d'abord un exemple :
Par exemple, si vous souhaitez collecter diverses données sur le site Web, vous avez développé la classe Spider . Spider
. Il existe une méthode appelée request()
qui est responsable des requêtes
<?php namespace XWSoul\Network; class Spider { public function request($url) { //do sth. } }
Cependant, lors du processus de collecte de données, certains sites Web sont sensibles aux araignées et d'autres ne le sont pas. Pour les sites Web sensibles, nous avons proposé une solution utilisant un proxy. Cependant, l'utilisation d'un proxy affectera. la vitesse d'exploration. Cela se traduit par Certaines sous-classes de Spider doivent utiliser un proxy, et si possible, essayez de ne pas utiliser de proxy.Nous avons donc ajouté un nouveau trait Proxy :
<?php namespace XWSoul\Network; trait Proxy { protected $isProxy = false; public function useProxy($proxy) { //do sth proxy setups. $this->isProxy = true; return $this; } public function request($url) { if (!$this->isProxy) { throw new Exception("Please using proxy."); } //do sth. return parent::request($url); } }le trait remplace la méthode
de Spider, limitant la levée d'une exception lorsqu'elle est appelée sans appeler de proxy request()
Retour au précédent. question, le trait est comme ça Quelle est la différence entre l'utilisation et l'interface ?
Les contraintes de l'interface sont prédéfinies et doivent être implémentées au début de la définition, mais cela peut contraindre l'implémentation des méthodes. ne peut pas contraindre l'invocation des méthodes.Trait est une sorte de post-appel, il a implémenté la méthode, la clé est qu'elle n'impose des contraintes qu'à la classe qui s'appelle (une phrase absurde), et n'a aucun effet sur la classe qui s'appelle. ne s'appelle pas (encore une phrase absurde). En même temps, il est réutilisable et ne détruit pas l'implémentation de la classe Spider elle-même. Spider est toujours le même Spider.Je pense que l'utilisation. de traits est déjà très efficace ici.Après Ensuite
Quelqu'un peut décider de mettre en œuvre une autre requête, par exemple, proxyRequst. Ne serait-ce pas fini ? Cela a du sens... Cependant, si j'utilise un proxy différent, les détails spécifiques de la demande seront différents. Que dois-je faire si si si dans le code ? Pourquoi devrions-nous abandonner une solution aussi rafraîchissante ? comme un trait ? Pour plus d'articles sur les traits en PHP, veuillez faire attention au site Web chinois de PHP !
PHP convient au développement Web, en particulier dans le développement rapide et le traitement du contenu dynamique, mais n'est pas bon dans les applications de la science des données et de l'entreprise. Par rapport à Python, PHP présente plus d'avantages dans le développement Web, mais n'est pas aussi bon que Python dans le domaine de la science des données; Par rapport à Java, PHP fonctionne moins bien dans les applications au niveau de l'entreprise, mais est plus flexible dans le développement Web; Par rapport à JavaScript, PHP est plus concis dans le développement back-end, mais n'est pas aussi bon que JavaScript dans le développement frontal.

PHP et Python ont chacun leurs propres avantages et conviennent à différents scénarios. 1.PHP convient au développement Web et fournit des serveurs Web intégrés et des bibliothèques de fonctions riches. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et une bibliothèque standard puissante. Lors du choix, il doit être décidé en fonction des exigences du projet.

PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

Les raisons pour lesquelles PHP est la pile technologique préférée pour de nombreux sites Web incluent sa facilité d'utilisation, son soutien communautaire solide et son utilisation généralisée. 1) Facile à apprendre et à utiliser, adapté aux débutants. 2) Avoir une énorme communauté de développeurs et des ressources riches. 3) Largement utilisé dans WordPress, Drupal et d'autres plateformes. 4) Intégrez étroitement aux serveurs Web pour simplifier le déploiement du développement.

PHP reste un outil puissant et largement utilisé dans la programmation moderne, en particulier dans le domaine du développement Web. 1) PHP est facile à utiliser et intégré de manière transparente aux bases de données, et est le premier choix pour de nombreux développeurs. 2) Il prend en charge la génération de contenu dynamique et la programmation orientée objet, adaptée à la création et à la maintenance des sites Web rapidement. 3) Les performances de PHP peuvent être améliorées en mettant en cache et en optimisant les requêtes de base de données, et sa vaste communauté et son écosystème riche le rendent toujours important dans la pile technologique d'aujourd'hui.

En PHP, les références faibles sont mises en œuvre via la classe FaibleRreference et n'empêcheront pas le collecteur des ordures de récupérer des objets. Les références faibles conviennent aux scénarios tels que les systèmes de mise en cache et les auditeurs d'événements. Il convient de noter qu'il ne peut garantir la survie des objets et que la collecte des ordures peut être retardée.

La méthode \ _ \ _ Invoke permet aux objets d'être appelés comme des fonctions. 1. Définissez la méthode \ _ \ _ Invoquer afin que l'objet puisse être appelé. 2. Lorsque vous utilisez la syntaxe $ obj (...), PHP exécutera la méthode \ _ \ _ Invoke. 3. Convient pour des scénarios tels que la journalisation et la calculatrice, l'amélioration de la flexibilité et de la lisibilité du code.

Les fibres ont été introduites dans PHP8.1, améliorant les capacités de traitement simultanées. 1) Les fibres sont un modèle de concurrence léger similaire aux coroutines. 2) Ils permettent aux développeurs de contrôler manuellement le flux d'exécution des tâches et conviennent à la gestion des tâches à forte intensité d'E / O. 3) L'utilisation des fibres peut écrire du code plus efficace et réactif.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Version Mac de WebStorm
Outils de développement JavaScript utiles

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Dreamweaver Mac
Outils de développement Web visuel

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.