Posso usar o sinal de hash(#) para comentar em PHP?



hashtag list (8)

Eu nunca, nunca, vi um arquivo PHP usando hashes ( # ) para comentar. Mas hoje eu percebi que eu realmente posso! Estou assumindo que há uma razão pela qual todo mundo usa // invés disso, então aqui estou eu.

Existe alguma razão, além da preferência pessoal, para usar // vez de # para comentários?


A resposta para a pergunta Existe alguma diferença entre usar "#" e "//" para comentários de linha única no PHP? é não .

Não há diferença. Observando a parte de análise do código-fonte do PHP, tanto "#" quanto "//" são manipulados pelo mesmo código e, portanto, têm exatamente o mesmo comportamento.


Pode-se pensar que a # forma de comentario e principalmente a de fazer um script de shell usando a notacao familiar "shebang" (#!). No script a seguir, o PHP deve ignorar a primeira linha porque também é um comentário. Exemplo:

#!/usr/bin/php
<?php

echo "Hello PHP\n";

Se você armazená-lo em um arquivo executável, você pode executá-lo a partir de um terminal como este

./hello

A saída é

Hello PHP

No entanto , esse raciocínio está incorreto, como mostra o contraexemplo a seguir:

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

#B
echo "Hello PHP\n";

A primeira linha (a linha shebang) é especialmente ignorada pelo intérprete. A linha de comentário antes da tag PHP é ecoada para a saída padrão porque não está dentro de uma tag PHP. O comentário após a tag PHP de abertura é interpretado como código PHP, mas é ignorado porque é um comentário.

A saída da versão revisada é

#A
Hello PHP

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

"Recursos obsoletos no PHP 5.3.x ... Comentários começando com '#' agora estão obsoletos em arquivos .INI."

Lá você tem isso. Hash '#' parece permanecer como uma opção de comentário por padrão, não sendo preterido. Eu pretendo usá-lo para distinguir várias camadas de instruções if / else aninhadas e marcar seus colchetes de fechamento, ou use para distinguir comentários de código do código comentado como outros sugeriram em posts relacionados. (Nota: Link foi válido / funcionando a partir de 23/04/19, embora quem sabe se ainda estará funcionando quando você está lendo isso.)


A documentação do PHP descreve as diferentes possibilidades de comentários. Veja http://www.php.net/manual/en/language.basic-syntax.comments.php

Mas isso não diz nada sobre diferenças entre "//" e "#". Portanto, não deve haver uma diferença técnica. O PHP usa a sintaxe C, então acho que essa é a razão pela qual a maioria dos programadores está usando os comentários no estilo C '//'.


Sim, no entanto, existem diferenças entre plataformas.

Eu uso # o tempo todo para comentar em PHP, mas notei uma diferença de adoção.

No teclado do Windows, a tecla # é fácil de usar. No mac teclado # chave principalmente não está presente.

Portanto, para usuários do Mac, [Alt] + [3] ou [⌥] + [3] é mais difícil de digitar do que //, então // tornou-se uma maneira multiplataforma de exibir código com comentários.

Esta é minha observação.


Não há PSR oficial para isso.

No entanto, em todos os códigos de exemplo do PSR, eles usam // para comentários in-line.

Há uma proposta de extensão do PSR-2 que visa padronizá-lo, mas não é oficial: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding-style-guide-additions.md#commenting-code

// é mais comumente usado na cultura PHP, mas é bom usar # também. Eu pessoalmente gosto disso, por ser mais curto e salvar bytes. É um gosto pessoal e tendencioso, não há resposta certa para isso, até que, é claro, isso se torne um padrão, algo que devemos tentar seguir o máximo possível.


Comentários com "#" estão obsoletos com o PHP 5.3. Então sempre use // ou / ... /


Existe alguma razão, além da preferência pessoal, para usar // em vez de # para comentários?

Eu acho que é apenas uma preferência pessoal. Não há diferença entre // e # . Eu pessoalmente uso # para comentário de uma linha, // para comentar código e /** */ para comentário de bloco.

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




comments