Posso usare un cancelletto (#) per commentare in PHP?


144

Non ho mai visto un file PHP usando hashes ( #) per commentare. Ma oggi ho capito che in realtà posso! Suppongo che ci sia una ragione per cui tutti usano //invece, quindi eccomi qui.

C'è qualche motivo, oltre alle preferenze personali, da usare //piuttosto che #per i commenti?


16
Questo è un hash (o sterlina o quadrato, a seconda del paese in cui ti trovi), non un tag hash. Un hashtag è un mezzo per classificare i contenuti su Twitter.
Quentin,

Puoi utilizzare l'equivalente di escape HTML & # 35; se hai bisogno del simbolo # nel tuo codice
dotoree

22
Pensavo che il #simbolo fosse chiamato tag hash ... :( Nessun motivo per votare in modo così pesante. Lezione imparata
Hubro

3
Mi piace usare #per i commenti a riga singola, //per commentare il codice e /* ... */per i blocchi di commenti
John Magnolia,

Possibile duplicato dei commenti PHP # vs //
nawfal,

Risposte:


163

La risposta alla domanda C'è qualche differenza tra l'uso di "#" e "//" per i commenti a riga singola in PHP? è no .

Non c'è differenza. Osservando la parte di analisi del codice sorgente PHP, sia "#" che "//" sono gestiti dallo stesso codice e quindi hanno lo stesso identico comportamento.


3
Si noti che N ++ (6.55) non può sempre piegare #correttamente i commenti. Ho notato che in file PHP di grandi dimensioni: 2k righe o più. A volte inizia a piegare il codice su più #.
CdR

1
Preferisco di gran lunga i #commenti rispetto a //quelli .. ma mi sono sempre chiesto se il #PSR è conforme .. Lo è?
Stphane,

5
L'hash è utile quando si descrivono percorsi, ad es. # /news (code here)invece di // /news (code here). Per quanto riguarda i file LoC 2k, penso che ci siano altri problemi oltre al tag di commento da utilizzare :)
Juha Untinen

11

La documentazione di PHP descrive le diverse possibilità di commenti. Vedi http://www.php.net/manual/en/language.basic-syntax.comments.php

Ma non dice nulla sulle differenze tra "//" e "#". Quindi non ci dovrebbe essere una differenza tecnica. PHP usa la sintassi C, quindi penso che questo sia il motivo per cui la maggior parte dei programmatori sta usando i commenti in stile C '//'.


1
Oppure usa la sintassi perl, nel qual caso appare "#". E perl ottiene la sua sintassi di commento dalle shell 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


// è un commento in stile C
Blue Water,

6

C'è qualche motivo, oltre alle preferenze personali, di usare // anziché # per i commenti?

Penso che sia solo una preferenza personale. Non c'è differenza tra //e #. Uso personalmente #per il commento di una riga, //per commentare il codice e /** */per il commento di blocco.

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

Mi piace usare //per commenti regolari sul codice, poiché è quello che la maggior parte delle persone usa per commentare il codice. E io uso #per i commenti che hanno lo scopo di descrivere, piuttosto che essere il codice che viene commentato. Evitare /**/per una fodera riduce i conflitti di apertura / chiusura quando si tenta di utilizzare /**/il codice che ha `/ ** / all'interno di quel codice ... si finisce con una chiusura prematura. e questo è male.
ahnbizcad,

5

Si potrebbe pensare che la #forma del commento sia principalmente intesa a creare uno script di shell usando la familiare notazione "shebang" (#!). Nel seguente script, PHP dovrebbe ignorare la prima riga perché è anche un commento. Esempio:

#!/usr/bin/php
<?php

echo "Hello PHP\n";

Se lo memorizzi in un file eseguibile, puoi eseguirlo da un terminale come questo

./hello

L'output è

Hello PHP

Tuttavia , questo ragionamento non è corretto, come mostra il seguente controesempio:

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

#B
echo "Hello PHP\n";

La prima riga (la riga shebang) viene ignorata in modo speciale dall'interprete. La riga di commento prima del tag PHP viene ripetuta nell'output standard perché non si trova all'interno di un tag PHP. Il commento dopo l'apertura del tag PHP viene interpretato come codice PHP ma viene ignorato perché è un commento.

L'output della versione rivista è

#A
Hello PHP

13
In realtà, lo shebang è al di fuori del codice PHP, quindi non è assolutamente un commento per PHP . Prova a rimuovere !, ed esegui il file dalla phpriga di comando: stamperà "# / usr / bin / php". Il motivo per cui lo shebang viene ignorato è perché PHP riconosce le righe dello shebang all'inizio dei file e li ignora.
Ninj,

Usando php7.4, entrambi i commenti vengono ripetuti. Quindi la banda non viene (o non più) ignorata.
Chargnn il

0

Se stabilisci alcuni set di regole nel tuo team / progetto ... i 2 tipi di commenti possono essere utilizzati per delineare lo scopo del codice commentato.

Ad esempio, mi piace usare #per silenziare / disabilitare le impostazioni di configurazione, le funzioni secondarie e in generale un pezzo di codice che è utile o importante, ma attualmente è disabilitato.


mi piace fare il contrario, ma essenzialmente la stessa cosa nello spirito. utilizzare uno per i commenti sul codice e l'altro per i commenti di descrizione.
ahnbizcad,

@ahnbizcad è meglio usare i blocchi di commenti per la descrizione / ** * * /
d.raev

perché. ---- / - / - / - / -
ahnbizcad,

0

Non esiste un PSR ufficiale per questo.

Tuttavia, in tutto il codice di esempio PSR, vengono utilizzati //per i commenti incorporati.

C'è una proposta di estensione PSR-2 che mira a standardizzarla, ma non è ufficiale: https://github.com/php-fig-rectified/fig-recfied-standards/blob/master/PSR-2-R-coding- style-guide-additions.md # commentando-code

//è più comunemente usato nella cultura PHP, ma va bene anche da usare #. Personalmente mi piace, per essere più breve e risparmiare byte. È gusto personale e di parte, non c'è una risposta giusta per questo, fino a quando, ovviamente, non diventa uno standard, che è qualcosa che dovremmo cercare di seguire il più possibile.


Il problema con gli standard nel regno dell'Informatica è che per creare uno standard, devi avere l'opzione migliore, e in Informatica non esiste l'opzione migliore. Ci sono solo opzioni sbagliate e opzioni migliori. Ma la "migliore opzione" non esiste.
Blue Water,

0

Sì, tuttavia ci sono differenze tra le piattaforme.

Uso sempre # per commentare in PHP, ma ho notato una differenza di adozione.

Sulla tastiera di Windows il tasto # è facile da usare. Sulla tastiera mac il tasto # non è presente per lo più

Pertanto, per gli utenti Mac, [Alt] + [3] o [⌥] + [3] è più difficile da digitare rispetto a //, quindi // è diventato un modo multipiattaforma per visualizzare il codice con commenti.

Questa è la mia osservazione


0

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

"Funzionalità obsolete in PHP 5.3.x ... I commenti che iniziano con '#' sono ora deprecati nei file .INI."

Ecco qua. L'hash '#' sembra rimanere un'opzione di commento per impostazione predefinita non essendo deprecato. Ho intenzione di usarlo per distinguere i vari livelli di istruzioni if ​​/ else nidificate e contrassegnare le loro parentesi quadre, o usare per distinguere i commenti di codice dal codice commentato come altri hanno suggerito nei post correlati. (Nota: il link era valido / funzionava dal 23/04/19, anche se chissà se continuerà a funzionare anche quando stai leggendo questo.)


0

C'è qualche motivo, oltre alle preferenze personali, di usare // anziché # per i commenti?

Sono venuto qui per la risposta da solo, ed è bello sapere che non c'è alcuna differenza di codice.

Tuttavia, per quanto riguarda le preferenze, si potrebbe sostenere che preferiresti la coerenza dei commenti 'shell-> perl-> php' rispetto al modo 'c-> php'.

Dato che mi sono avvicinato a PHP come webby perl di un povero, stavo usando # .. e poi ho visto il codice di qualcun altro e sono arrivato direttamente a SO. ;)


-8

I commenti con "#" sono obsoleti con PHP 5.3. Quindi usa sempre // o / ... /


21
Sono deprecati solo nei file INI .
SconcertatoGoat

@DisgruntledGoat Qualche riferimento alla documentazione ufficiale?
Wilt

1
Direttamente da php.net: i commenti che iniziano con '#' sono ora deprecati nei file .INI.
Appassisci l'

4
Andre, forse è tempo di cancellare questa risposta.
Jose Manuel Abarca Rodríguez,

1
meno ricerca! farti perdere :) ma anche questo mi aiuta a sapere che # è deprecato nei file INI
Abdul Manan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.