Что означает символ "@" в комментариях?


В PHP я заметил, что люди помещают символ "@" в комментарии к исходному коду. Одним из замечательных примеров является что-нибудь WordPress. Когда вы смотрите на источник, вы видите такие вещи, как

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

(wp-db.php, Строка 124)

Он изменяет подсветку синтаксиса в моем редакторе, поэтому я предполагаю, что он что-то делает, но я не уверен, что он делает. Кто-нибудь объяснит, что символ "@" делает в комментариях?

Author: Goldentoa11, 2012-03-29

4 answers

Это PHPDoc комментарии. Они предназначены для машинного анализа для поддержки автоматизированной документации и завершения кода IDE.

 7
Author: Alex Howansky, 2012-03-29 19:00:58

Предыдущие ответы верны в том, что символы @ в исходных комментариях являются комментариями PHPDoc. Они могут дополнительно использоваться для чего-то, называемого "аннотацией", которая добавляет метаданные к некоторому элементу кода и может влиять на поведение приложения. Он официально не поддерживается в PHP, но обсуждается уже несколько лет и используется в Symfony, Doctrine и других проектах.

Отличное объяснение с помощью слайд-шоу (без связи со мной) всех вещи PHP и аннотации:

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

Общее обсуждение предмета аннотации:

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

RFC от 2010 года, касающийся реализации аннотаций в PHP:

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

 3
Author: Night Owl, 2014-04-20 02:40:48

Такие обозначения служат способом создания анализатора документации из комментариев. Таким образом, первый @ может быть идентифицирован как версия, второй - как аргументы и так далее.

 0
Author: Spyros, 2012-03-29 19:00:22

Обычно это делается для автоматического создания документации из файлов исходного кода. В этом случае @_ используются для идентификации метаданных о переменной. Вместо того, чтобы оцениваться по порядку, @var может сообщить анализатору документации, что следующий текст описывает переменную и так далее.

 0
Author: samuelg, 2012-03-29 19:04:35