Могу ли я использовать знак хэша (#) для комментариев в PHP?
Я никогда, никогда не видел PHP-файл, использующий хэши (#
) для комментариев. Но сегодня я понял, что действительно могу! Я предполагаю, что есть причина, по которой все используют //
вместо этого, поэтому я здесь.
Есть ли какая-либо причина, помимо личных предпочтений, использовать //
вместо #
для комментариев?
9 answers
Ответ на вопрос Есть ли какая-либо разница между использованием "#" и "//" для однострочных комментариев в PHP? нет.
Нет никакой разницы. Посмотрев на часть синтаксического анализа исходного кода PHP, и "#", и "//" обрабатываются одним и тем же кодом и, следовательно, имеют одинаковое поведение.
Документация PHP описывает различные возможности комментариев. См. http://www.php.net/manual/en/language.basic-syntax.comments.php
Но в нем ничего не говорится о различиях между "//" и "#". Так что технической разницы быть не должно. PHP использует синтаксис C, поэтому я думаю, что именно по этой причине большинство программистов используют комментарии в стиле C '//'.
<?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
?>
Есть ли какая-либо причина, помимо личных предпочтений, использовать // вместо # для комментариев?
Я думаю, что это всего лишь личное предпочтение. Нет никакой разницы между //
и #
. Я лично использую #
для однострочного комментария, //
для комментирования кода и /** */
для блочного комментария.
<?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';
?>
Можно подумать , что форма комментариев #
в первую очередь предназначена для создания сценария оболочки с использованием знакомой нотации "shebang" (#!). В следующем сценарии PHP должен игнорировать первую строку, потому что это также комментарий. Пример:
#!/usr/bin/php
<?php
echo "Hello PHP\n";
Если вы сохраните его в исполняемом файле, вы можете затем запустить его с такого терминала
./hello
Вывод
Hello PHP
Однако это рассуждение неверно, так как следующий контрпример показывает:
#!/usr/bin/php
#A
<?php
#B
echo "Hello PHP\n";
Первая строка (строка shebang) специально игнорируется интерпретатором. Строка комментария перед тегом PHP отображается в стандартном выводе, потому что она не находится внутри тега PHP. Комментарий после открывающего тега PHP интерпретируется как PHP-код, но он игнорируется, потому что это комментарий.
Выходные данные пересмотренной версии
#A
Hello PHP
Если вы устанавливаете некоторые наборы правил в своей команде/проекте... 2 типа комментариев могут быть использованы для описания цели прокомментированного кода.
Например, мне нравится использовать #
для отключения/отключения настроек конфигурации, вспомогательных функций и в целом фрагмента кода, который полезен или важен, но в данный момент отключен.
Для этого нет официального PSR.
Однако во всех примерах кода PSR они используют //
для встроенных комментариев.
Есть предложение по расширению PSR-2, которое направлено на его стандартизацию, но оно не является официальным: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding-style-guide-additions.md#commenting-code
//
чаще используется в культуре PHP, но также можно использовать #
. Лично мне это нравится, потому что я короче и экономит байты. Это личный вкус и предвзятость, на это нет правильного ответа, пока, конечно, это не станет стандартом, которому мы должны стараться следовать как можно больше.
Да, однако существуют межплатформенные различия.
Я все время использую # для комментариев на PHP, но я заметил разницу в принятии.
На клавиатуре Windows клавиша # проста в использовании. На клавиатуре mac # клавиши в основном нет.
Таким образом, для пользователей Mac [Alt] + [3] или [⌥] + [3] вводить сложнее, чем //, поэтому // стал кроссплатформенным способом отображения кода с комментариями.
Это мое наблюдение.
Комментарии с "#" устарели в PHP 5.3. Поэтому всегда используйте // или /.../