Puis-je utiliser un signe dièse (#) pour commenter en PHP?


144

Je n'ai jamais, jamais vu un fichier PHP utilisant hashes ( #) pour commenter. Mais aujourd'hui, j'ai réalisé que je pouvais vraiment! Je suppose qu'il y a une raison pour laquelle tout le monde utilise à la //place, alors me voici.

Y a-t-il une raison, en dehors de la préférence personnelle, d'utiliser //plutôt que #de commenter?


16
C'est un hachage (ou un livre, ou un carré, selon le pays dans lequel vous vous trouvez), pas une balise de hachage. Un hashtag est un moyen de catégoriser le contenu sur Twitter.
Quentin

Vous pouvez utiliser l'équivalent d'échappement HTML & # 35; si vous avez besoin du symbole # dans votre code
dotoree

22
Je pensais que le #symbole s'appelait une balise de hachage ...: (Aucune raison de voter si fortement. Leçon apprise
Hubro

3
J'aime utiliser #pour les commentaires sur une seule ligne, //pour commenter le code et /* ... */pour les blocs de commentaires
John Magnolia

Réponses:


163

La réponse à la question Y a-t-il une différence entre l'utilisation de "#" et "//" pour les commentaires sur une seule ligne en PHP? est non .

Il n'y a pas de différence. En regardant la partie analyse du code source PHP, "#" et "//" sont tous deux gérés par le même code et ont donc exactement le même comportement.


3
Notez que N ++ (6.55) ne peut pas toujours plier #correctement les commentaires. J'ai remarqué que dans les gros fichiers PHP: 2k lignes ou plus. Parfois, il commence à plier le code sur plusieurs #.
CdR le

1
Je préfère de loin les #commentaires aux commentaires //... mais je me suis toujours demandé si le #PSR était conforme ... Vraiment?
Stphane

5
Le hachage est utile pour décrire les routes, par exemple. # /news (code here)au lieu de // /news (code here). En ce qui concerne les fichiers LoC 2k, je pense qu'il y a d'autres problèmes que la balise de commentaire à utiliser :)
Juha Untinen

11

La documentation PHP décrit les différentes possibilités de commentaires. Voir http://www.php.net/manual/en/language.basic-syntax.comments.php

Mais cela ne dit rien sur les différences entre "//" et "#". Il ne devrait donc pas y avoir de différence technique. PHP utilise la syntaxe C, donc je pense que c'est la raison pour laquelle la plupart des programmeurs utilisent les commentaires de style C '//'.


1
Ou il utilise la syntaxe perl, auquel cas "#" fait son apparition. Et perl obtient sa syntaxe de commentaire des shells unix-ey.
Gerard ONeill

7
<?php
    echo 'This is a test'; // This is a one-line C++ style comment
    /* This is a multi-line comment.
       Yet another line of comment. */
    echo 'This is yet another test.';
    echo 'One Final Test'; # This is a one-line shell-style comment
?>

RTM


// est un commentaire de style C
Blue Water

6

Existe-t-il une raison, en dehors des préférences personnelles, d'utiliser // plutôt que # pour les commentaires?

Je pense que ce n'est qu'une préférence personnelle. Il n'y a aucune différence entre //et #. J'utilise personnellement pour les commentaires sur #une ligne, //pour commenter le code et /** */pour bloquer les commentaires.

<?php
    # This is a one-line comment
    echo 'This is a test';

    // echo 'This is yet another test'; // commenting code

    /** 
     * This is a block comment
     * with multi-lines 
     */
    echo 'One final test';
?>

J'aime utiliser //pour les commentaires de code normaux, car c'est ce que la plupart des gens utilisent pour commenter du code. Et j'utilise #pour les commentaires destinés à décrire, plutôt que d'être du code commenté. Le fait d'éviter /**/un seul liners réduit les conflits d'ouverture / fermeture lorsque vous essayez d'utiliser /**/sur du code qui a `/ ** / dans ce code ... vous vous retrouvez avec une fermeture prématurée. et c'est mauvais.
ahnbizcad

5

On pourrait penser que la #forme de commentaire est principalement destinée à créer un script shell en utilisant la notation familière "shebang" (#!). Dans le script suivant, PHP doit ignorer la première ligne car c'est aussi un commentaire. Exemple:

#!/usr/bin/php
<?php

echo "Hello PHP\n";

Si vous le stockez dans un fichier exécutable, vous pouvez l'exécuter à partir d'un terminal comme celui-ci

./hello

La sortie est

Hello PHP

Cependant , ce raisonnement est incorrect, comme le montre le contre-exemple suivant:

#!/usr/bin/php
#A
<?php

#B
echo "Hello PHP\n";

La première ligne (la ligne shebang) est spécialement ignorée par l'interpréteur. La ligne de commentaire avant la balise PHP est renvoyée à la sortie standard car elle ne se trouve pas dans une balise PHP. Le commentaire après la balise PHP d'ouverture est interprété comme du code PHP mais il est ignoré car il s'agit d'un commentaire.

La sortie de la version révisée est

#A
Hello PHP

13
En fait, le shebang est en dehors du code PHP, donc ce n'est absolument pas un commentaire pour PHP . Essayez de supprimer le !, et exécutez le fichier via la phpligne de commande: il affichera "# / usr / bin / php". La raison pour laquelle le shebang est ignoré est que PHP reconnaît les lignes de shebang au tout début des fichiers et les ignore.
Ninj

En utilisant php7.4, les deux commentaires sont renvoyés. Ainsi, le sheband n'est pas (ou plus) ignoré du tout.
Chargnn le

0

Si vous établissez des ensembles de règles dans votre équipe / projet ... les 2 types de commentaires peuvent être utilisés pour décrire le but du code commenté.

Par exemple, j'aime utiliser #pour désactiver / désactiver les paramètres de configuration, les sous-fonctions et en général un morceau de code qui est utile ou important, mais qui est actuellement désactivé.


J'aime faire le contraire, mais essentiellement la même chose dans l'esprit. utilisez-en un pour les commentaires de code et l'autre pour les commentaires de description.
ahnbizcad

@ahnbizcad il est préférable d'utiliser des blocs de commentaires pour la description / ** * * /
d.raev

Pourquoi. ---- / - / - / - / -
ahnbizcad

0

Il n'y a pas de PSR officiel pour cela.

Cependant, dans tous les exemples de code PSR, ils sont utilisés //pour les commentaires en ligne.

Il existe une proposition d'extension PSR-2 qui vise à le standardiser, mais ce n'est pas officiel: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding- style-guide-additions.md # commenting-code

//est plus couramment utilisé dans la culture PHP, mais il est également possible de l'utiliser #. Je l'aime personnellement, pour être plus court et économiser des octets. C'est un goût personnel et partial, il n'y a pas de bonne réponse, jusqu'à ce que, bien sûr, cela devienne une norme, ce que nous devrions essayer de suivre autant que possible.


Le problème avec les normes dans le domaine de l'informatique est que pour créer une norme, il faut avoir la meilleure option, et en informatique, il n'existe pas de meilleure option. Il n'y a que de mauvaises options et de meilleures options. Mais la "meilleure option" n'existe pas.
Blue Water le

0

Oui, mais il existe des différences entre plates-formes.

J'utilise # tout le temps pour commenter en PHP, mais j'ai remarqué une différence d'adoption.

Sur le clavier Windows, la touche # est facile à utiliser. Sur le clavier mac, la touche # n'est généralement pas présente.

Donc, pour les utilisateurs de mac, [Alt] + [3] ou [⌥] + [3] est plus difficile à taper que //, donc // est devenu un moyen multiplateforme d'afficher du code avec des commentaires.

C'est mon observation.


0

Depuis https://php.net/manual/en/migration53.deprecated.php

"Fonctionnalités obsolètes dans PHP 5.3.x ... Les commentaires commençant par '#' sont désormais obsolètes dans les fichiers .INI."

Voilà. Le hachage '#' semble rester une option de commentaire par défaut car il n'est pas obsolète. Je prévois de l'utiliser pour distinguer différentes couches d'instructions if / else imbriquées et marquer leurs crochets fermants, ou l'utiliser pour distinguer les commentaires de code du code commenté, comme d'autres l'ont suggéré dans des articles connexes. (Remarque: le lien était valide / fonctionnait au 23/04/19, mais qui sait s'il fonctionnera toujours lorsque vous lirez ceci.)


0

Existe-t-il une raison, en dehors des préférences personnelles, d'utiliser // plutôt que # pour les commentaires?

Je suis venu ici pour la réponse moi-même, et il est bon de savoir qu'il n'y a AUCUNE différence de code.

Cependant, en termes de préférence, on pourrait affirmer que vous préférez la cohérence des commentaires 'shell-> perl-> php' par rapport à la méthode 'c-> php'.

Depuis que j'ai abordé php comme un webby perl d'un pauvre homme, j'utilisais # .. et puis j'ai vu le code de quelqu'un d'autre et suis venu directement à SO. ;)


-8

Les commentaires avec "#" sont obsolètes avec PHP 5.3. Alors utilisez toujours // ou / ... /


21
Ils ne sont obsolètes que dans les fichiers INI .
DisgruntledGoat

@DisgruntledGoat Une référence à la documentation officielle?
Wilt

1
Directement depuis php.net: les commentaires commençant par '#' sont désormais obsolètes dans les fichiers .INI.
Wilt

4
Andre, il est peut-être temps de supprimer cette réponse.
Jose Manuel Abarca Rodríguez

1
moins de recherche! vous faire perdre :) mais cela m'aide aussi à savoir que # est obsolète dans les fichiers INI
Abdul Manan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.