2012-03-29 18 views
9

In PHP, ho notato che le persone inseriscono il simbolo "@" nei commenti del codice sorgente. Un grande esempio è qualsiasi cosa WordPress. Quando si guarda alla fonte, si vedono le cose comeQual è il simbolo "@" per nei commenti?

/** Results of the last query made 
* 
* @since 1.0.0 
* @access private 
* @var array|null 
*/ 
var $last_result 

(wp-db.php, linea 124)

Cambia l'evidenziazione della sintassi nel mio editor quindi sto supponendo che fa qualcosa, ma Non sono sicuro di cosa faccia. Qualcuno potrebbe spiegare cosa fa il simbolo "@" nei commenti?

risposta

7

Questi sono i commenti PHPDoc. Sono concepiti per essere analizzabili dalla macchina per supportare la documentazione automatica e il completamento del codice IDE.

0

Tali notazioni servono come un modo per creare un parser di documentazione dai commenti. Quindi, il primo @ potrebbe essere identificato come la versione, il secondo come argomenti e così via.

0

Questo in genere viene eseguito per generare automaticamente la documentazione dai file del codice sorgente. In questo caso, il @_ viene utilizzato per identificare i metadati relativi alla variabile. Invece di essere valutato in ordine, @var può dire al parser della documentazione che il seguente testo descrive la variabile e così via.

3

Le risposte precedenti sono corrette affermando che i simboli @ nei commenti di origine sono commenti PHPDoc. Possono anche essere usati per qualcosa chiamato "annotation" che aggiunge metadati a qualche elemento di codice e può influenzare il comportamento di un'applicazione. Non è ufficialmente supportato in PHP, ma è in discussione da diversi anni ed è in uso in Symfony, Doctrine e in altri progetti.

Una spiegazione eccellente tramite presentazione (alcuna affiliazione con me) di tutte le cose PHP e annotazione:

http://www.slideshare.net/rdohms/annotations-in-php-they-exist

Una discussione generica del soggetto della nota:

http://en.wikipedia.org/wiki/Annotation

An RFC del 2010 riguardante l'implementazione delle annotazioni in PHP:

http://wiki.php.net/rfc/annotations

Problemi correlati