¿Puedo usar un signo hash (#) para comentar en PHP?


144

Nunca, nunca, he visto un archivo PHP usando hashes ( #) para comentar. ¡Pero hoy me di cuenta de que realmente puedo! Supongo que hay una razón por la cual todos lo usan //, así que aquí estoy.

¿Hay alguna razón, aparte de la preferencia personal, para usar en //lugar de #comentarios?


16
Eso es un hash (o libra o cuadrado, dependiendo del país en el que te encuentres), no una etiqueta de hash. Un hashtag es un medio para clasificar el contenido en Twitter.
Quentin

Puede usar el equivalente de escape HTML & # 35; si necesita el símbolo # en su código
dotoree

22
Pensé que el #símbolo se llamaba una etiqueta hash ... :( No hay razón para rechazar tanto el voto. Lección aprendida
Hubro

3
Me gusta usar #para comentarios de una sola línea, //para comentar código y /* ... */para bloques de comentarios
John Magnolia

Posible duplicado de PHP Comentarios # vs //
nawfal

Respuestas:


163

La respuesta a la pregunta ¿Hay alguna diferencia entre usar "#" y "//" para comentarios de una sola línea en PHP? es ninguna .

No hay diferencia. Al observar la parte de análisis del código fuente PHP, tanto "#" como "//" se manejan con el mismo código y, por lo tanto, tienen exactamente el mismo comportamiento.


3
Tenga en cuenta que N ++ (6.55) no siempre puede plegar los #comentarios correctamente. Noté que en archivos PHP grandes: 2k líneas o más. A veces comienza a doblar el código en múltiples #.
CDR

1
Prefiero los #comentarios sobre //los ... pero siempre me he preguntado si #cumple con PSR ... ¿Lo es?
Stphane

55
Hash es útil al describir rutas, por ejemplo. # /news (code here)en lugar de // /news (code here). En cuanto a los archivos de 2k LoC, creo que hay otros problemas además de qué etiqueta de comentario usar :)
Juha Untinen

11

La documentación de PHP describe las diferentes posibilidades de comentarios. Ver http://www.php.net/manual/en/language.basic-syntax.comments.php

Pero no dice nada sobre las diferencias entre "//" y "#". Por lo tanto, no debería haber una diferencia técnica. PHP usa la sintaxis de C, por lo que creo que esa es la razón por la cual la mayoría de los programadores están usando los comentarios de estilo C '//'.


1
O usa la sintaxis perl, en cuyo caso "#" hace su aparición. Y perl obtiene su sintaxis de comentarios de los shells de 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


// es un comentario de estilo C
Blue Water

6

¿Hay alguna razón, aparte de la preferencia personal, para usar // en lugar de # para comentarios?

Creo que es solo una preferencia personal solamente. No hay diferencia entre //y #. Personalmente lo uso #para comentarios de una línea, //para comentar código y /** */para comentar en bloque.

<?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';
?>

Me gusta usar //para comentarios regulares de código, ya que eso es lo que la mayoría de la gente usa cuando comenta el código. Y lo uso #para comentarios que tienen la intención de describir, en lugar de ser un código que está comentado. Evitar /**/un revestimiento reduce los conflictos de apertura / cierre cuando intenta utilizar /**/un código que tiene '/ ** / dentro de ese código ... termina con un cierre prematuro. Y eso es malo.
ahnbizcad

5

Uno podría pensar que la #forma de comentar está destinada principalmente a hacer un script de shell utilizando la notación familiar "shebang" (#!). En el siguiente script, PHP debería ignorar la primera línea porque también es un comentario. Ejemplo:

#!/usr/bin/php
<?php

echo "Hello PHP\n";

Si lo almacena en un archivo ejecutable, puede ejecutarlo desde un terminal como este

./hello

La salida es

Hello PHP

Sin embargo , este razonamiento es incorrecto, como muestra el siguiente contraejemplo:

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

#B
echo "Hello PHP\n";

El intérprete ignora especialmente la primera línea (la línea shebang). La línea de comentario antes de la etiqueta PHP se repite en la salida estándar porque no está dentro de una etiqueta PHP. El comentario después de la etiqueta PHP de apertura se interpreta como código PHP pero se ignora porque es un comentario.

El resultado de la versión revisada es

#A
Hello PHP

13
En realidad, el shebang está fuera del código PHP, por lo que no es un comentario para PHP . Intente eliminar !y ejecute el archivo a través de la phplínea de comandos: imprimirá "# / usr / bin / php". La razón por la cual se ignora el shebang es porque PHP reconoce las líneas shebang al comienzo de los archivos y las ignora.
Ninj

Usando php7.4, ambos comentarios tienen eco. Por lo tanto, el sheband no se ignora (o ya no).
Chargnn

0

Si establece algunos conjuntos de reglas en su equipo / proyecto ... los 2 tipos de comentarios pueden usarse para describir el propósito del código comentado.

Por ejemplo, me gusta usar #para silenciar / deshabilitar la configuración, las subfunciones y, en general, un código que es útil o importante, pero que actualmente está deshabilitado.


Me gusta hacer lo contrario, pero esencialmente lo mismo en espíritu. use uno para comentarios de código y el otro para comentarios de descripción.
ahnbizcad

@ahnbizcad es mejor usar bloques de comentarios para la descripción / ** * * /
d.raev

por qué. ---- / - / - / - / -
ahnbizcad

0

No hay PSR oficial para eso.

Sin embargo, en todos los códigos de ejemplo de PSR, se usan //para comentarios en línea.

Hay una propuesta de extensión PSR-2 que tiene como objetivo estandarizarla, pero no es oficial: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding- style-guide-additions.md # commenting-code

//se usa más comúnmente en la cultura PHP, pero está bien usarlo #también. Personalmente me gusta, por ser más corto y guardar bytes. Es un gusto personal y sesgado, no hay una respuesta correcta para ello, hasta que, por supuesto, se convierta en un estándar, que es algo que debemos tratar de seguir tanto como sea posible.


El problema con los estándares en el ámbito de la informática es que para hacer un estándar, tienes que tener la mejor opción, y en informática no existe la mejor opción. Solo hay opciones incorrectas y mejores opciones. Pero la "mejor opción" no existe.
Blue Water

0

Sí, sin embargo, hay diferencias entre plataformas.

Uso # todo el tiempo para comentar en PHP, pero he notado una diferencia de adopción.

En el teclado de Windows, la tecla # es fácil de usar. En el teclado mac, la tecla # en su mayoría no está presente.

Entonces, para los usuarios de Mac, [Alt] + [3] o [⌥] + [3] es más difícil de escribir que //, entonces // se ha convertido en una forma multiplataforma de mostrar código con comentarios.

Esta es mi observación.


0

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

"Las características en desuso en PHP 5.3.x ... Los comentarios que comienzan con '#' ahora están en desuso en los archivos .INI".

Ahí tienes. El hash '#' parece permanecer como una opción de comentario por defecto al no ser desaprobado. Planeo usarlo para distinguir varias capas de sentencias if / else anidadas y marcar sus corchetes de cierre, o usarlo para distinguir los comentarios de código del código comentado como otros han sugerido en publicaciones relacionadas. (Nota: el enlace era válido / funcionaba el 23/04/19, aunque quién sabe si seguirá funcionando cuando esté leyendo esto).


0

¿Hay alguna razón, aparte de la preferencia personal, para usar // en lugar de # para comentarios?

Vine aquí por la respuesta yo mismo, y es bueno saber que NO hay diferencia de código.

Sin embargo, se podría argumentar que preferiría la consistencia del comentario 'shell-> perl-> php' frente a la forma 'c-> php'.

Como me acerqué a php como el perl webby de un hombre pobre, estaba usando # .. y luego vi el código de otra persona y llegué directamente a SO. ;)


-8

Los comentarios con "#" están en desuso con PHP 5.3. Así que siempre use // o / ... /


21
Solo están en desuso en los archivos INI .
Cabra descontento

@DisgruntledGoat ¿Alguna referencia a la documentación oficial?
Wilt

1
Directamente desde php.net: los comentarios que comienzan con '#' ahora están en desuso en archivos .INI.
Wilt

44
Andre, tal vez es hora de eliminar esta respuesta.
Jose Manuel Abarca Rodríguez

1
menos investigación! hacerte perder :) pero esto también me ayudó a saber que # está en desuso en los archivos INI
Abdul Manan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.