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


144

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

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


16
Isso é um hash (ou libra ou quadrado, dependendo do país em que você está), não uma tag de hash. Uma hashtag é um meio de categorizar o conteúdo no Twitter.
Quentin

Você poderia usar o equivalente de escape HTML & # 35; se precisar do símbolo # no seu código
dotoree

22
Eu pensei que o #símbolo foi chamado de hash tag ... :( Não há razão para baixo votação tão fortemente Lição aprendida.
Hubro

3
Eu gosto de usar #para comentários de linha única, //para comentar a código e /* ... */de blocos de comentário
John Magnolia

Possível duplicata do PHP Comments # vs //
nawfal

Respostas:


163

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

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


3
Observe que o N ++ (6.55) nem sempre pode dobrar os #comentários corretamente. Notei que em grandes arquivos PHP: 2k linhas ou mais. Às vezes, começa a dobrar o código em vários #.
CR

1
Eu prefiro #comentários do que comentários //... mas sempre me perguntei se o #PSR é compatível. É?
Stphane

5
Hash é útil ao descrever rotas, por exemplo. # /news (code here)em vez de // /news (code here). Quanto 2k arquivos Linha de Controlo, eu acho que existem outros problemas de que tag comentário ao uso :)
Juha Untinen

11

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

Mas isso não diz nada sobre as 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 '//'.


1
Ou ele usa a sintaxe perl, nesse caso "#" aparece. E o perl obtém sua sintaxe de comentário dos shell unix-ey.
precisa

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


// é um comentário de estilo C
Blue Water

6

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ários de uma linha, //para comentar códigos e /** */para comentários em 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';
?>

Eu gosto de usar //para comentários regulares de código, pois é isso que a maioria das pessoas usa quando comenta código. E eu uso #para comentários que pretendem descrever, em vez de ser um código comentado. Evitar /**/um liner reduz os conflitos de abertura / fechamento quando você tenta usar o /**/código que tem `/ ** / dentro desse código ... você acaba com o fechamento prematuro. e isso é ruim.
Ahnbizcad

5

Pode-se pensar que a #forma de comentar se destina principalmente a criar um script de shell usando a notação 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ê o armazenar em um arquivo executável, poderá executá-lo em um terminal como este

./hello

A saída é

Hello PHP

No entanto , esse raciocínio está incorreto, como mostra o seguinte contra-exemplo:

#!/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 na 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

13
Na verdade, o shebang está fora do código PHP, portanto não é um comentário para o PHP . Tente remover o !arquivo e execute-o na phplinha de comando: ele imprimirá "# / usr / bin / php". A razão pela qual o shebang é ignorado é porque o PHP reconhece as linhas shebang no início dos arquivos e as ignora.
Ninj

Usando o php7.4, os dois comentários são repetidos. Portanto, o sheband não é (ou não é mais) ignorado.
Chargnn 15/01

0

Se você estabelecer alguns conjuntos de regras em sua equipe / projeto ... os 2 tipos de comentários podem ser usados ​​para descrever o objetivo do código comentado.

Por exemplo, eu gosto de usar #para silenciar / desabilitar as configurações, sub-funções e, em geral, um pedaço de código que é útil ou importante, mas que está desabilitado no momento.


Eu gosto de fazer o oposto, mas essencialmente a mesma coisa em espírito. use um para comentários de código e o outro para comentários de descrição.
Ahnbizcad

@ahnbizcad é melhor usar blocos de comentários para inscrição / ** * * /
d.raev

porque. ---- / - / - / - / -
ahnbizcad

0

Não há PSR oficial para isso.

No entanto, em todo o código de exemplo PSR, eles usam //para comentários embutidos.

Existe uma proposta de extensão do PSR-2 que visa padronizá-la, 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 também é bom usar #. Eu pessoalmente gosto, por ser mais curto e salvar bytes. É de gosto pessoal e tendencioso, não há resposta certa para isso, até que, claro, se torne um padrão, que é algo que devemos tentar seguir o máximo possível.


O problema com os padrões no campo da Ciência da Computação é que, para criar um padrão, você precisa ter a melhor opção e, na Ciência da Computação, não existe a melhor opção. Existem apenas opções erradas e melhores opções. Mas a "melhor opção" não existe.
Blue Water

0

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 teclado do Mac, a tecla # principalmente não está presente.

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

Esta é a minha observação.


0

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

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

Aí está. O 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, ou use para distinguir comentários de código de código comentado, como outros sugeriram em postagens relacionadas. (Observação: o link era válido / funcionando a partir de 23/04/19, embora quem sabe se ainda estará funcionando quando você estiver lendo isso.)


0

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

Eu vim aqui para a resposta a mim mesmo, e é bom saber que há NO diferença código.

No entanto, em termos de preferência, pode-se argumentar que você prefere a consistência do comentário 'shell-> perl-> php' versus a maneira 'c-> php'.

Desde que me aproximei do php como webby perl de um homem pobre, estava usando # .. e então vi o código de outra pessoa e fui direto para o SO. ;)


-8

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


21
Eles são preteridos apenas nos arquivos INI .
DisgruntledGoat

@DisgruntledGoat Alguma referência à documentação oficial?
Wilt

1
Diretamente do php.net: os comentários que começam com '#' agora estão obsoletos nos arquivos .INI.
Wilt

4
Andre, talvez seja hora de excluir esta resposta.
Jose Manuel Abarca Rodríguez 28/07

1
menos pesquisa! fazer com que você perda :) mas isso também me ajudar sabia que # é obsoleto em arquivos INI
Abdul Manan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.