Maison > Questions et réponses > le corps du texte
P粉6396675042023-08-24 12:44:02
Je pense que ce sujet est complètement trop discuté/trop compliqué. Utiliser un IDE est un moyen d’éviter complètement toute erreur de syntaxe. Je dirais même que travailler sans IDE n'est pas professionnel. Pourquoi? Parce que les IDE modernes vérifient votre syntaxe après chaque caractère que vous tapez. Lorsque vous codez et que la ligne entière devient rouge et qu'une grande notification d'avertissement indique le type exact et l'emplacement exact de l'erreur de syntaxe, il n'est absolument pas nécessaire de rechercher d'autres solutions.
Vous ne rencontrerez (en fait) plus jamais d'erreurs de grammaire car vous les verrez correctement au fur et à mesure que vous tapez. honnêtement.
Excellents IDE avec vérification de la syntaxe (tous disponibles pour Linux, Windows et Mac) :
P粉0685109912023-08-24 09:05:03
PHP appartient aux langages de programmation C style et Imperative. Il comporte des règles de syntaxe strictes qui ne peuvent pas être récupérées lorsqu'un symbole ou un identifiant égaré est rencontré. Il ne peut pas deviner vos intentions de codage.
Il y a quelques précautions de base que vous pouvez toujours prendre :
Utilisez une indentation de code appropriée ou adoptez n'importe quel style de codage avancé. La lisibilité évite les irrégularités.
Utilisez IDEou un éditeur pour PHP avec surbrillance de la syntaxe. Cela aide également à l’équilibre entre supports et supports.
Lisez la Référence linguistique et les exemples dans le manuel. Après deux fois, vous devenez compétent.
Un message d'erreur de syntaxe typique est le suivant :
Il répertorie éventuelles erreurs grammaticales. Veuillez consulter le nom du fichier et le numéro de ligne mentionnés.
Un T_STRING
nom comme explique le traitement final des symboles qui ne peuvent pas être analysés par l'analyseur/tagger. Cependant, ce n’est pas nécessairement la cause de l’erreur de syntaxe.
regarder les lignes de code précédentes. Souvent, les erreurs de syntaxe ne sont que des accidents survenus auparavant. Le numéro de ligne d’erreur est exactement l’endroit où l’analyseur abandonne finalement tout traiter.
Il existe de nombreuses façons de réduire et de résoudre les problèmes de grammaire.
Ouvrez le fichier source mentionné. Consultez la ligne de code mentionnée.
Avec des cordes emballées et des opérateurs égarés, c'est généralement là que l'on trouve le coupable.
Lisez la ligne de gauche à droite et imaginez ce que fait chaque symbole.
Vous devez également vérifier les lignes précédentes plus souvent.
Plus précisément, le ;
point-virgule est manquant à la fin/à l'instruction de la ligne précédente. (Au moins du point de vue du style.)
Si {
代码块}
n'est pas fermé ou imbriqué correctement, vous devrez peut-être enquêter davantage sur le code source. Utilisez une indentation de code appropriée pour simplifier.
Découvrez Coloriage grammaire !
Les chaînes, variables et constantes doivent toutes avoir des couleurs différentes.
opérateurs+-*/.
devraient également être colorés différemment. Sinon, ils pourraient se trouver dans le mauvais environnement.
Si vous trouvez que la coloration de votre chaîne s'étend trop loin ou trop courte, vous avez découvert une fin non échappée ou manquante "
或 '
marqueur de chaîne.
Deux signes de ponctuation adjacents de la même couleur peuvent également signifier des problèmes. Normalement, un opérateur est seul s'il n'est pas suivi de ++
、--
ou d'une parenthèse. Dans la plupart des cas, deux chaînes/identifiants directement connectés sont incorrects.
L'espace vide est votre ami. Suivez n’importe quelstyle de codage.
Brisez temporairement la longue file d'attente.
Vous pouvez librement ajouter des nouvelles lignes entre des opérateurs ou des constantes et des chaînes. L'analyseur externalisera alors le numéro de ligne qui a analysé l'erreur. Au lieu de regarder du code très détaillé, vous pouvez isoler les symboles de syntaxe manquants ou mal placés.
Convertir des conditions if
语句拆分为不同的或嵌套的 if
complexes.
Au lieu d'utiliser de longues formules mathématiques ou des chaînes logiques, utilisez des variables temporaires pour simplifier votre code. (Plus lisible = moins d'erreurs.)
Ajouter des sauts de ligne entre :
Partitionner de longs blocs de code aide vraiment à localiser la source des erreurs de syntaxe.
Commentezle code incriminé.
Si vous ne parvenez pas à isoler la source du problème, commencez à commenter (supprimant ainsi temporairement) des blocs de code.
Une fois que vous avez résolu l'erreur d'analyse, vous avez trouvé la source du problème. Regardez-y de plus près.
Parfois, vous souhaitez supprimer temporairement un bloc de fonction/méthode complet. (En cas d'accolades incompatibles et de code mal indenté.)
Lorsque vous n'arrivez pas à résoudre un problème de grammaire, essayez de repartir de zéro réécrireles parties commentées.
En tant que débutant, évitez certaines structures grammaticales déroutantes.
Tternaire? :
条件运算符可以压缩代码并且确实很有用。但它并不能在所有情况下提高可读性。在不熟悉的情况下更喜欢简单的 if
.
Syntaxe alternative pour PHP (if:
/elseif:
/endif;
) 对于模板来说很常见,但可以说不太容易遵循正常的 {
代码 }
blocs.
Les erreurs les plus courantes commises par les débutants sont :
Point-virgule manquant ;
pour terminer l'instruction/la ligne.
"
或 '
ne correspondent pas et les guillemets ne sont pas échappés.
Opérateurs oubliés, notamment la concaténation des chaînes .
.
Déséquilibré(
括号)
. Comptez-les dans les lignes signalées. Leurs quantités sont-elles égales ?
N’oubliez pas que la résolution d’un problème de grammaire peut révéler le suivant.
Si vous résolvez un problème mais que quelque chose d'autre apparaît dans un code ci-dessous, vous êtes fondamentalement sur la bonne voie.
Si de nouvelles erreurs de syntaxe apparaissent dans la même ligne après la modification, vos tentatives de modification risquent d'échouer. (Mais pas toujours.)
Si vous ne parvenez pas à le réparer, restaurez une sauvegarde de votre code de travail précédent.
差异
. Cela pourrait aider à comprendre quel est le problème de syntaxe.
Caractères Unicode parasites invisibles : Dans certains cas, vous devez utiliser un éditeur hexadécimal ou un autre éditeur/visualiseur sur le code source. Certains problèmes ne peuvent pas être détectés simplement en regardant le code.
Essayez grep --color -P -n "[x80-xFF]" file.php
comme première mesure pour trouver des symboles non-ASCII.
En particulier, les nomenclatures, les espaces de largeur nulle ou les espaces insécables et les guillemets intelligents apparaissent souvent dans le code source.
Faites attention au type de nouvelles lignes enregistré dans le fichier.
PHP ne prend en charge que le caractère de saut de ligne n et ne prend pas en charge le caractère de retour chariot r.
Cela peut parfois poser problème pour les utilisateurs de MacOS (même sous OS X si l'éditeur est mal configuré).
Habituellement utilisé uniquement lors de l'utilisation de lignes simples. //
或 #
注释时才会出现问题。当忽略换行符时,多行 /*...*/
Les commentaires interfèrent rarement avec l'analyseur.
Si votre erreur de grammaire n'est pas transmise sur le réseau : Il se trouve que vous avez une erreur de syntaxe sur votre machine. Mais la mise en ligne du même fichier ne le montre plus. Cela ne peut signifier qu'une des deux choses suivantes :
Vous consultez le mauvais fichier !
Ou votre code contient de l'Unicode parasite invisible (voir ci-dessus). Vous pouvez le découvrir facilement : copiez simplement le code du formulaire Web dans votre éditeur de texte.
Vérifiez votre version PHP. Toutes les constructions de syntaxe ne sont pas disponibles sur tous les serveurs.
php -v
pour l'interpréteur de ligne de commande
Pour les appels via un serveur web.
Ce ne sont pas forcément les mêmes. Surtout lorsque vous utilisez des cadres, vous devez les faire correspondre.
N'utilisez pas de Mots-clés réservés PHP comme fonction/méthode, identifiants de classe ou constantes.
Les essais et erreurs sont un dernier recours.
Si tout le reste échoue, vous pouvez toujours googlevotre message d'erreur. Les symboles de syntaxe sont moins faciles à rechercher (bien que Stack Overflow lui-même soit indexé via SymbolHound). Par conséquent, vous devrez peut-être parcourir quelques pages supplémentaires pour trouver du contenu pertinent.
Plus de guides :
Si votre site Web est tout simplement vide, cela est généralement dû à des erreurs grammaticales. Activer son affichage :
error_reporting = E_ALL
display_errors = 1
Dans votre php.ini
php.ini
一般来说,或者通过 mod_php 的 .htaccess
D'une manière générale, ou via le .htaccess
,
Même .user.ini
en utilisant les paramètres FastCGI.
Il est trop tard pour l'activer dans un script défectueux car PHP ne peut même pas interpréter/exécuter la première ligne. Une solution rapide consiste à créer un script wrapper comme test.php
:
<?php error_reporting(E_ALL); ini_set("display_errors", 1); include("./broken-script.php");
Le code défaillant est ensuite appelé en accédant à ce script wrapper.
Cela aide également à activer PHP error_log
并查看您的网络服务器的error.log
lorsque le script plante avec une réponse HTTP 500.