Table des matières
1. N'utilisez pas les fonctions de la classe mysql_
2. 不要写无用的代码
3. 不要在文件末尾使用 PHP 闭合标签
4. 如非必须不要引用传参
5. 不要在循环里使用查询
6. 不要在 SQL 查询中使用 *
7. 不要信任用户的输入
9. Ne réinventez pas la roue
10. Ne négligez pas les autres langages
Maison développement back-end PHP7 Savez-vous à quels pièges PHP7 doit prêter attention ?

Savez-vous à quels pièges PHP7 doit prêter attention ?

Sep 25, 2021 pm 05:21 PM
php7

1. N'utilisez pas les fonctions de la classe mysql_

Enfin, vous n'avez plus besoin de voir les invites suggérant de ne pas utiliser la fonction mysql_. Puisque PHP 7 les supprime complètement du noyau, cela signifie passer à de meilleures fonctions de classe mysqli_, ou à la couche PDO plus flexible. mysql_ 函数的提示了。因为 PHP 7 从核心上完全移除了它们,这意味着请你移步至更好的 mysqli_ 类函数,或者更灵活的 PDO 层。

2. 不要写无用的代码

这看上去是个无脑建议,但是随着 PHP7 速度的提升掩盖了一些问题使它显得日趋重要。不要仅仅因切到 PHP7 让网站速度变得快点,你就沾沾自喜了。

想理解速度的重要性和如何做的更好,去看看我们这篇文章 初学者加速优化指南。

作为开发者,应该确保按需加载脚本,可能时再组合,编写高效的数据库查询语句,如果可能的话 使用缓存 等等。

3. 不要在文件末尾使用 PHP 闭合标签

如果你随便看看,就会发现大部分 WordPress 核心代码文件结尾都省略了 PHP 闭合标签。事实上,Zend 框架尤为明显地 禁止了闭合标签。它并非 PHP 所必须,在文件结尾处省略它,可确保结尾无额外空白。

4. 如非必须不要引用传参

我个人非常不喜欢引用传参。我当然知道在某些场合下它很有用,但是多数场合下,它会使得代码难以理解,难以遵循,难以预测结果。

人们认为引用可以使它们的代码更快,不过正如 可敬的 PHP 程序员 的这篇文章所指出的,事实并非如此。

PHP 内置的 shuffle() 或者 sort() 函数,就是糟糕的引用传参案例。 它修改了原数组而不是返回一个打乱的或者排好序的数组,这是完全违背了我们意愿的。

5. 不要在循环里使用查询

在循环中使用数据库查询时最糟糕的。他会给系统带来不必要的压力,并且很有可能,你可以在循环外使用查询而更快的得到相同的结果。当我碰到必须这样用的场景时,我通常会通过分成两个查询来构造一个数组的方式来解决。然后循环数组而无需循环查询。

由于 WordPress 的运行方式,这样做可能会有些例外。 get_post_meta() 将从数据库获取一个元数据,如果您正在循环访问特定文章的元数据,则可以在循环中使用它。这是因为当你第一次使用它的时候,WordPress 实际上取得了所有的元数据并缓存了起来。 之后的调用实际上是调用缓存数据而不是调用数据库。

解决这些问题的最好办法是阅读函数文档并且使用一些类似 查询监听器 的东西。

6. 不要在 SQL 查询中使用 *

好吧,这更像是一个 MySQL 的问题,但我们更倾向于在代码中编写 SQL 语句,所以我说这是个公平的游戏。不管什么情况下,如果你能避免使用通配符,那就不要使用,尤其是当你的数据库有很多字段的时候。

明确指定你需要的字段,并且只检索这些字段。这有助于节省内存,保护数据,并且能让事情变得更加清晰明白。

在 SQL 方面,尽可能的了解你可用的函数并测试速度。 当计算平均数,求和以及计算相似的数字的时候,使用 SQL 内置函数而不是 PHP 的函数。 如果你不确定一个查询的速度快慢,测试一下它并和其他做法进行比较,选出最好的那一种。

7. 不要信任用户的输入

信任用户输入并不明智。对于用户输入,总是需要过滤,杀毒,转义,校验以及使用回退。 用户输入存在三个问题:我们开发者不可能考虑到所有可能性,经常出错,存心的恶意输入。

一个经过深思熟虑的系统可以防止所有的这些问题。 在使用数据库时,确保使用内置的函数,如 filter_var()

2. N'écrivez pas de code inutile

Cela peut sembler une suggestion insensée, mais à mesure que la vitesse de PHP7 augmente, cela masque certains problèmes et le rend de plus en plus important. Ne soyez pas complaisant simplement parce que le passage à PHP7 rend votre site plus rapide.

Pour comprendre l'importance de la vitesse et comment mieux la faire, consultez notre article Guide du débutant sur l'optimisation de l'accélération.

En tant que développeur, vous devez vous assurer que les scripts sont chargés à la demande, combinés lorsque cela est possible, écrire des requêtes de base de données efficaces, utiliser la mise en cache si possible, etc.

3. N'utilisez pas de balises de fermeture PHP à la fin des fichiers🎜🎜Si vous jetez un coup d'œil décontracté, vous constaterez que la plupart des fichiers de code principal de WordPress omettent les balises de fermeture PHP à la fin. En fait, le Zend Framework désactive spécifiquement les balises de fermeture. Il n'est pas requis par PHP, son omission à la fin du fichier garantit l'absence d'espace supplémentaire à la fin. 🎜🎜4. Ne citez pas de paramètres sauf si cela est absolument nécessaire🎜🎜Personnellement, je n'aime pas citer des paramètres. Bien sûr, je sais que cela peut être utile dans certaines situations, mais la plupart du temps, cela rend le code difficile à comprendre, difficile à suivre et difficile à prédire les résultats. 🎜🎜Les gens pensent que les références rendent leur code plus rapide, mais comme le souligne cet article de The Respectable PHP Programmer, ce n'est pas le cas. 🎜🎜La fonction shuffle() ou sort() intégrée de PHP est un mauvais exemple de passage de paramètre par référence. Il modifie le tableau d'origine au lieu de renvoyer un tableau mélangé ou trié, ce qui est totalement contraire à nos souhaits. 🎜🎜5. N'utilisez pas de requêtes en boucles 🎜🎜Le pire est d'utiliser des requêtes de base de données en boucles. Cela exercera une pression inutile sur le système et, très probablement, vous pourrez obtenir les mêmes résultats plus rapidement en utilisant la requête en dehors de la boucle. Lorsque je rencontre une situation où je dois l'utiliser de cette façon, je la résous généralement en la divisant en deux requêtes pour construire un tableau. Ensuite, parcourez le tableau sans boucler la requête. 🎜🎜En raison du fonctionnement de WordPress, il peut y avoir quelques exceptions à cela. get_post_meta() obtiendra des métadonnées de la base de données, que vous pourrez utiliser en boucle si vous parcourez les métadonnées d'une publication spécifique. En effet, WordPress prend toutes les métadonnées et les met en cache lorsque vous l’utilisez pour la première fois. Les appels suivants appellent en fait les données mises en cache plutôt que la base de données. 🎜🎜La meilleure façon de résoudre ces problèmes est de lire la documentation de la fonction et d'utiliser quelque chose comme un écouteur de requêtes. 🎜🎜6. N'utilisez pas * dans les requêtes SQL🎜🎜Eh bien, c'est plutôt une question MySQL, mais nous avons tendance à écrire des instructions SQL dans du code, donc je dis que c'est un jeu équitable. Dans tous les cas, si vous pouvez éviter d'utiliser des caractères génériques, ne les utilisez pas, surtout si votre base de données comporte de nombreux champs. 🎜🎜Spécifiez explicitement les champs dont vous avez besoin et récupérez uniquement ces champs. Cela permet d'économiser de la mémoire, de protéger les données et de rendre les choses plus claires. 🎜🎜En termes de SQL, renseignez-vous le plus possible sur les fonctions qui s'offrent à vous et testez la rapidité. Lors du calcul de moyennes, de sommes et de nombres similaires, utilisez les fonctions SQL intégrées au lieu des fonctions PHP. Si vous n'êtes pas sûr de la rapidité d'une requête, testez-la et comparez-la avec d'autres approches pour choisir la meilleure. 🎜🎜7. Ne faites pas confiance aux entrées des utilisateurs 🎜🎜 Faire confiance aux entrées des utilisateurs n'est pas sage. Pour la saisie de l'utilisateur, il est toujours nécessaire de filtrer, nettoyer, échapper, valider et utiliser des solutions de secours. Il y a trois problèmes avec la saisie utilisateur : il est impossible pour nous, développeurs, d'envisager toutes les possibilités, les erreurs fréquentes et les saisies intentionnellement malveillantes. 🎜🎜Un système bien pensé peut prévenir tous ces problèmes. Lorsque vous utilisez une base de données, assurez-vous d'utiliser des fonctions intégrées telles que filter_var() pour vérifier la validité, échapper et faire tout ce que vous pouvez. 🎜🎜 WordPress dispose de nombreuses fonctions pour vous aider. Jetez un œil à cet article pour en savoir plus sur la validation, l'échappement et la désinfection des données utilisateur. 🎜🎜8. Ne soyez pas intelligent 🎜🎜Votre objectif est d'écrire un code élégant qui exprime clairement vos souhaits. Vous pouvez économiser 0,01 seconde de temps de chargement sur chaque page en raccourcissant les noms de variables, en utilisant des opérations logiques ternaires à plusieurs niveaux et d'autres astuces, mais cela n'en vaut pas la peine par rapport aux conséquences de causer des maux de tête à vous et à votre équipe et des difficultés de maintenance. 🎜🎜Nommez les variables de manière appropriée et rédigez la documentation du code de manière concise et claire. Il est préférable d'utiliser un style de codage orienté objet standardisé et de le documenter plus ou moins, plutôt que d'utiliser de nombreux commentaires de code en ligne. 🎜

9. Ne réinventez pas la roue

PHP existe depuis un certain temps, et le développement de sites Web existe encore plus longtemps. Quoi que vous ayez fait, quelqu’un d’autre l’a déjà fait. N'ayez pas peur de compter sur le soutien des autres. Github, Composer et Packagist sont tous vos mentors.

Des enregistreurs aux processeurs de couleurs, des analyseurs aux frameworks de tests unitaires, des API Mailchimp au Twitter Bootstrap, tout est à portée de clic d'un bouton (ou d'une commande), alors utilisez-les !

10. Ne négligez pas les autres langages

Si vous êtes un PHPer, il est désormais courant de connaître au moins HTML, CSS, Javascript et MySQL. Lorsque vous maîtrisez bien ces langages, il est temps de réapprendre Javascript. Javascript n'est pas jQuery. Vous devez apprendre Javascript pour utiliser jQuery efficacement.

Je recommande également d'apprendre tout ce qui est orienté objet en PHP. C'est une bouée de sauvetage et améliorera votre code de plusieurs ordres de grandeur. Il peut également ouvrir les portes à des langages comme C# et Java, qui peuvent faciliter la compréhension de la programmation orientée objet (POO) une fois que vous en avez l'expérience.

Développez vos connaissances en apprenant la gestion de packages, la création de scripts, Coffeescript, LESS, SASS, YAML, les moteurs de modèles et d'autres outils utiles. Je recommande également de tout cœur de consulter d'autres frameworks, notamment Laravel.

Lorsque vous êtes assez bon dans ces domaines, pensez à Ruby, Ruby on Rails et au développement d'applications pour Android, iPhone et Windows Phone ? Vous pensez peut-être que ces mesures sont inutiles parce qu’elles sortent de votre zone de confort et des exigences de votre travail, mais c’est exactement le but recherché. Chaque langue possède des connaissances pédagogiques utiles et quelques extras inoffensifs. Tous les meilleurs développeurs PHP connaissent d’autres langages de programmation, ce n’est pas un hasard !

Apprentissage recommandé : "Tutoriel PHP7"

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Apr 02, 2024 pm 07:39 PM

Pour résoudre le problème du plugin n'affichant pas installé dans PHP 7.0 : Vérifiez la configuration du plugin et activez le plugin. Redémarrez PHP pour appliquer les modifications de configuration. Vérifiez les autorisations du fichier du plugin pour vous assurer qu'elles sont correctes. Installez les dépendances manquantes pour garantir le bon fonctionnement du plugin. Si toutes les autres étapes échouent, reconstruisez PHP. D'autres causes possibles incluent des versions de plugin incompatibles, le chargement d'une mauvaise version ou des problèmes de configuration PHP.

Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Mar 22, 2023 am 09:30 AM

En php5, nous pouvons utiliser la fonction fsockopen() pour détecter le port TCP. Cette fonction peut être utilisée pour ouvrir une connexion réseau et effectuer certaines communications réseau. Mais en php7, la fonction fsockopen() peut rencontrer certains problèmes, comme ne pas pouvoir ouvrir le port, ne pas pouvoir se connecter au serveur, etc. Afin de résoudre ce problème, nous pouvons utiliser la fonction socket_create() et la fonction socket_connect() pour détecter le port TCP.

Comment installer l'extension mongo dans php7.0 Comment installer l'extension mongo dans php7.0 Nov 21, 2022 am 10:25 AM

Comment installer l'extension mongo dans php7.0 : 1. Créez le groupe d'utilisateurs et l'utilisateur mongodb ; 2. Téléchargez le package de code source mongodb et placez le package de code source dans le répertoire "/usr/local/src/" ; Entrez le répertoire « src/ » ; 4. Décompressez le package de code source ; 5. Créez le répertoire de fichiers mongodb ; 6. Copiez les fichiers dans le répertoire « mongodb/ » 7. Créez le fichier de configuration mongodb et modifiez la configuration.

Comment installer et déployer php7.0 Comment installer et déployer php7.0 Nov 30, 2022 am 09:56 AM

Comment installer et déployer php7.0 : 1. Accédez au site officiel de PHP pour télécharger la version d'installation correspondant au système local ; 2. Extrayez le fichier zip téléchargé dans le répertoire spécifié 3. Ouvrez la fenêtre de ligne de commande et accédez à ; le répertoire "E:\php7" Exécutez simplement la commande "php -v".

Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Apr 09, 2024 pm 01:33 PM

Les solutions courantes pour les environnements de serveur PHP consistent à s'assurer que la version correcte de PHP est installée et que les fichiers pertinents ont été copiés dans le répertoire du module. Désactivez SELinux temporairement ou définitivement. Vérifiez et configurez PHP.ini pour vous assurer que les extensions nécessaires ont été ajoutées et configurées correctement. Démarrez ou redémarrez le service PHP-FPM. Vérifiez les paramètres DNS pour les problèmes de résolution.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Lequel est le meilleur, php8 ou php7 ? Lequel est le meilleur, php8 ou php7 ? Nov 16, 2023 pm 03:09 PM

Par rapport à PHP7, PHP8 présente certains avantages et améliorations en termes de performances, de nouvelles fonctionnalités et améliorations de la syntaxe, du système de types, de la gestion des erreurs et des extensions. Cependant, le choix de la version à utiliser dépend de vos besoins spécifiques et des circonstances du projet. Introduction détaillée : 1. Amélioration des performances, PHP8 introduit le compilateur Just-in-Time (JIT), qui peut améliorer la vitesse d'exécution du code ; 2. Nouvelles fonctionnalités et améliorations de la syntaxe, PHP8 prend en charge la déclaration des paramètres nommés et des paramètres facultatifs, création de fonctions L'appel est plus flexible ; des classes anonymes, des déclarations de propriétés de type, etc. sont introduites.

Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Apr 01, 2025 pm 03:06 PM

Causes et solutions pour les erreurs Lors de l'utilisation de PECL pour installer des extensions dans un environnement Docker Lorsque nous utilisons un environnement Docker, nous rencontrons souvent des maux de tête ...

See all articles