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


Nunca he visto un archivo PHP usando hashes (#) para comentar. Pero hoy me di cuenta de que realmente puedo! Estoy asumiendo que hay una razón por la que todo el mundo usa // en su lugar, así que aquí estoy.

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

 125
Author: Behzad Seyfi, 2012-02-01

9 answers

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

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

 142
Author: Aziz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-14 20:29:41

La documentación de PHP describe las diferentes posibilidades de los comentarios. Véase 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 sintaxis de C, así que creo que esa es la razón por la que la mayoría de los programadores están usando los comentarios de estilo C '//'.

 9
Author: naitsirch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-01 09:52:19
<?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

 6
Author: ajreal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-25 18:50:48

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

Creo que es solo una preferencia personal. No hay diferencia entre // y #. Yo personalmente uso # para comentarios de una línea, // para comentar código y /** */ para comentarios de 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';
?>
 6
Author: Sithu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-27 14:50:31

Uno podría pensar que la forma # de comentar está destinada principalmente a hacer un script de shell usando el familiar "shebang" (#!) notación. En el siguiente script, PHP debe 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 el siguiente contraejemplo muestra:

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

#B
echo "Hello PHP\n";

La primera línea (la línea shebang) es especialmente ignorada por el intérprete. La línea de comentario antes de la etiqueta PHP se repite a 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.

La salida de la versión revisada es

#A
Hello PHP
 4
Author: Brandin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-19 15:04:52

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

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

 0
Author: d.raev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-09 10:00:06

No hay PSR oficial para eso.

Sin embargo, en todo el código de ejemplo de PSR, usan // para comentarios en línea.

Hay una propuesta de extensión PSR-2 que pretende 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 usar # también. Personalmente me gusta, por ser más corto y ahorro de bytes. Es un gusto personal y sesgado, no hay una respuesta correcta para ello, hasta que, por supuesto, se convierte en un estándar, que es algo que debemos tratar de seguir tanto como sea posible.

 0
Author: Lucas Bustamante,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-20 15:35:21

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 mac keyboard # key en su mayoría no está presente.

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

Esta es mi observación.

 0
Author: Mark N Hopgood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-27 14:54:03

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

 -6
Author: Andre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-30 12:23:40