Как обозначить комментариев в php
PHP поддерживает комментарии в стиле 'C', 'C++' и оболочки Unix (стиль Perl). Например:
Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идёт перед ними. Это означает, что HTML-код после // . ?> или # . ?> БУДЕТ напечатан: ?> завершает режим PHP и возвращает режим HTML, а // или # не могут повлиять на это.
'C'-комментарии заканчиваются при первой же обнаруженной последовательности */ . Убедитесь, что вы не вкладываете друг в друга 'C'-комментарии. Очень легко допустить эту ошибку при комментировании большого блока кода.
User Contributed Notes 12 notes
Notes can come in all sorts of shapes and sizes. They vary, and their uses are completely up to the person writing the code. However, I try to keep things consistent in my code that way it’s easy for the next person to read. So something like this might help.
/* Title Here Notice the First Letters are Capitalized */
# Option 1
# Option 2
# Option 3
/*
* This is a detailed explanation
* of something that should require
* several paragraphs of information.
*/
// This is a single line quote.
?>
A nice way to toggle the commenting of blocks of code can be done by mixing the two comment styles:
<?php
//*
if ( $foo ) <
echo $bar ;
>
// */
sort ( $morecode );
?>
Now by taking out one / on the first line..
<?php
/*
if ($foo) <
echo $bar;
>
// */
sort ( $morecode );
?>
..the block is suddenly commented out.
This works because a /* .. */ overrides //. You can even «flip» two blocks, like this:
<?php
//*
if ( $foo ) <
echo $bar ;
>
/*/
if ($bar) <
echo $foo;
>
// */
?>
vs
<?php
/*
if ($foo) <
echo $bar;
>
/*/
if ( $bar ) <
echo $foo ;
>
// */
?>
It is worth mentioning that, HTML comments have no meaning in PHP parser. So,
WILL execute some_function() and echo result inside HTML comment.
As of php 8, single line comments starting exactly with «#[» have a special meaning: they are treated as «attributes», and they must respect the expected syntax. See: https://www.php.net/manual/en/language.attributes.php
So the following code throws an error in php 8+, while it is perfectly valid in php <8:
<?php
#[
my super cool comment
]
?>
To be safe, just always use «//» comments instead of «#». Maybe in the future there will be other special meanings for the «#» comments, who knows.
Comments in PHP can be used for several purposes, a very interesting one being that you can generate API documentation directly from them by using PHPDocumentor (http://www.phpdoc.org/).
Therefor one has to use a JavaDoc-like comment syntax (conforms to the DocBook DTD), example:
<?php
/**
* The second * here opens the DocBook commentblock, which could later on<br>
* in your development cycle save you a lot of time by preventing you having to rewrite<br>
* major documentation parts to generate some usable form of documentation.
*/
?>
Some basic html-like formatting is supported with this (ie <br> tags) to create something of a layout.
MSpreij (8-May-2005) says /* .. */ overrides //
Anonymous (26-Jan-2006) says // overrides /* .. */
Actually, both are correct. Once a comment is opened, *everything* is ignored until the end of the comment (or the end of the php block) is reached.
Thus, if a comment is opened with:
// then /* and */ are «overridden» until after end-of-line
/* then // is «overridden» until after */
Be careful when commenting out regular expressions.
E.g. the following causes a parser error.
I do prefer using # as regexp delimiter anyway so it won’t hurt me 😉
Comments do NOT take up processing power.
So, for all the people who argue that comments are undesired because they take up processing power now have no reason to comment 😉
// Control
echo microtime (), «<br />» ; // 0.25163600 1292450508
echo microtime (), «<br />» ; // 0.25186000 1292450508
// Test
echo microtime (), «<br />» ; // 0.25189700 1292450508
# TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST
# .. Above comment repeated 18809 times ..
echo microtime (), «<br />» ; // 0.25192100 1292450508
?>
They take up about the same amount of time (about meaning on a repeated testing, sometimes the difference between the control and the test was negative and sometimes positive).
it’s perhaps not obvious to some, but the following code will cause a parse error! the ?> in //?> is not treated as commented text, this is a result of having to handle code on one line such as <?php echo ‘something’ ; //comment ?>
<?php
if( 1 == 1 )
<
// ?>
>
?>
i discovered this «anomally» when i commented out a line of code containing a regex which itself contained ?>, with the // style comment.
e.g. //preg_match(‘/^(?>c|b)at$/’, ‘cat’, $matches);
will cause an error while commented! using /**/ style comments provides a solution. i don’t know about # style comments, i don’t ever personally use them.
a trick I have used in all languages to temporarily block out large sections (usually for test/debug/new-feature purposes), is to set (or define) a var at the top, and use that to conditionally comment the blocks; an added benefit over if(0) (samuli’s comment from nov’05) is that u can have several versions or tests running at once, and u dont require cleanup later if u want to keep the blocks in: just reset the var.
personally, I use this more to conditionally include code for new feature testing, than to block it out. but hey, to each their own 🙂
this is also the only safe way I know of to easily nest comments in any language, and great for multi-file use, if the conditional variables are placed in an include 🙂
for example, placed at top of file:
<?php $ver3 = TRUE ;
$debug2 = FALSE ;
?>
and then deeper inside the file:
<?php if ( $ver3 ) <
print( «This code is included since we are testing version 3» );
>
?>
<?php if ( $debug2 ) <
print( «This code is ‘commented’ out» );
>
?>
In php there are 3 types of comments
1.single line c++ style comment(//)
2.single line Unix shell stype comment(#)
3.multi line c style comment(/*/)
single or multi line comment comes to the end of the line or come first to the current block of php code.
HTML code will be printed after //. > or #. >
closing tag breaks the php mode and return to html mode.
different comments in different tags:
===================================
<H1>Standard tag: <?php //echo » standard tag»; ?> single line c++ style comment</H1>
<p>The header above will break php mode and return html mode and show ‘Standard tag:single line c++ style comment'</p>
<H1>Standard tag: <?php # echo » standard tag»; ?> single line unix shell style comment</H1>
<p>The header above will break php mode and return html mode and show ‘Standard tag:single line unix shell style comment'</p>
<H1>Standard tag: <?php /*echo » standard tag»; */ ?> multi line c style comment</H1>
<p>The header above will break php mode and return html mode and show ‘Standard tag:multi line c style comment'</p>
<H1>short echo tag: <?= // » short echo tag»; ?> single line c++ style comment</H1>
<p>The header above will break php mode show a unexpected syntex error'</p>
<H1>short echo tag: <?= # » short echo tag»; ?> single line c++ style comment</H1>
<p>The header above will break php mode show a unexpected syntex error'</p>
<H1>short echo tag: <?= /*echo » short echo tag»*/ ; ?> multiple line c style comment</H1>
<p>The header above will break php mode show a unexpected syntex error'</p>
<H1>Short tag: <? //echo » short tag»;?>single line c++ style comment</H1>
<p>The header above will break php mode and return html mode and show ‘Short tag:single line c++ style comment'</p>
<H1>Short tag: <? #echo » short tag»;?>single line unix shell style comment</H1>
<p>The header above will break php mode and return html mode and show ‘Short tag:single line unix shell style comment'</p>
<H1>Short tag: <? /* echo » short tag»;*/?>multi line c style comment</H1>
<p>The header above will break php mode and return html mode and show ‘Short tag:multi line c style comment'</p>
<H1>Script tag: <script language=»php»> // echo » script tag»;</script>single line c++ style comment</H1>
<p>The header above will break php mode and return html mode and show ‘Script tag:single line c++ style comment'</p>
<H1>Script tag: <script language=»php»> /* echo » script tag»;*/</script>multi line c style comment</H1>
<p>The header above will break php mode and return html mode and show ‘Script tag:multi line c style comment'</p>
<H1>Script tag: <script language=»php»> # echo » script tag»;</script>single line unix shell style comment</H1>
<p>The header above will not break php mode </p>
Конспект «Основы PHP»
PHP — препроцессорный язык. Он может собирать страницы из кусочков, как конструктор. PHP превращает код собранных страниц в HTML. Это и есть препроцессинг.
Комментарии
Комментарий — пояснение на человеческом языке, которое оставляет программист для других разработчиков, чтобы пояснить код программы. Код, заключённый в комментарий, не выполняется и не оказывает влияния на результат.
Однострочный комментарий в PHP — две косых черты // . Код на той же строке после этих символов будет закомментированным. Чтобы убрать комментарий, надо удалить // .
Синтаксис
Синтаксис — слова и правила написания этих слов. С помощью него компьютер нас понимает. У каждого языка программирования свой синтаксис.
Команды
Команда — указание программе выполнить какое-то действие.
Команда require добавляет код из указанного файла на страницу, где используется require :
В PHP есть и другие команды для подключения файлов. Например, include . Подробнее об этой команде можно узнать в спецификации.
Каждую команду нужно писать с новой строки, а в конце ставить точку с запятой ; . Так мы сообщим PHP, что запись одной команды закончена и дальше будет другая команда.
Склеивание файлов
При добавлении файлов в PHP происходит склеивание. Когда по ходу выполнения сценария встречается команда require , она заменяется на содержимое подключаемого файла, ровно в том порядке, в каком расположены require .
В примере к разметке шапки добавится разметка контента, а к ним разметка подвала.
PHP-теги
Чтобы PHP-код работал, он должен находиться внутри PHP-тегов:
Теги работают, как сигнал. С их помощью мы как будто говорим «обратите внимание, внутри PHP-код».
Иногда закрывающий тег можно опустить. Например, когда мы работаем со сценарием, где есть только PHP-код. Если мы внедряем фрагмент PHP в HTML, то закрывающий тег нужно использовать обязательно. Так мы обозначаем границы PHP-кода внутри шаблона.
Переменные
Переменная — способ сохранить информацию под определённым именем. Объявление переменной — написание имени переменной, первое её упоминание. Запись информации в переменную называется присваиванием значения.
Имя переменной должно начинаться со знака доллара $ , дальше может идти буква или символ подчёркивания. Название должно быть понятным для людей и описывать то, что находится в переменной.
Шаблоны
В шаблонах страницы хранят заготовки кода. Шаблон может быть статичным или динамичным, то есть включать в себя изменяемые данные.
Добавление PHP в разметку
Работают эти два варианта одинаково. Разница только в количестве символов.
База данных
База данных — сложная система, которая хранит информацию сайта в организованном виде.
Работа с адресом
Адресная строка — специальное поле в браузере, в котором написаны адреса страниц в интернете.
В адресе есть специальная часть, которая называется «параметры запроса». Параметры запроса располагаются после знака вопроса.
С помощью команды $_GET можно получить информацию из адреса.
Чтобы получить значение product_id с помощью $_GET , нужно написать $_GET[‘product_id’] .
Комментарии
PHP поддерживает комментарии в стиле 'C', 'C++' и оболочки Unix (стиль Perl). Например:
Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после // . ?> или # . ?> БУДЕТ напечатан: ?> завершает режим PHP и возвращает режим HTML, а // или # не могут повлиять на это. Если включена директива asp_tags, то аналогичное поведение будет и с // %> и # %>. Однако, тег </script> не завершает режим PHP в однострочном комментарии.
'C'-комментарии заканчиваются при первой же обнаруженной последовательности */. Убедитесь, что вы не вкладываете друг в друга 'C'-комментарии. Очень легко допустить эту ошибку при комментировании большого блока кода.
Синтаксис PHP: основы
![]()
Синтаксис PHP по умолчанию начинается с <?php и заканчивается ?> .
Любой код внутри <?php ?> является кодом PHP.
Пример:
Результат:
Если код содержит только PHP-код, некоторые специалисты рекомендуют опускать тег, чтобы предотвратить случайное отображение пробелов. Однако это хорошая идея лишь в том случае, если код содержит только PHP.
Разделение инструкций в PHP
В PHP инструкции завершаются с помощью точки с запятой (так же, как и во многих других языках программирования).
В последней строке кода точку с запятой ставить необязательно, так как закрывающий тег php подразумевает конец кода.
Пример:
Результат:
Оба приведенных выше примера являются приемлемым синтаксисом в контексте программирования на языке PHP.
Обратите внимание на то, что вывод из обеих строк кода уложился в одну строку. Это произошло потому, что мы не добавили никакого элемента HTML для создания разрыва между двумя строками. Если же просто нажать клавишу Enter, этого будет недостаточно.
Чувствительность PHP к регистру
Такие группы, как класс, управляющие структуры (например, операторы if , if else ) и имена функций не чувствительны к регистру.
Пример:
Результат:
Все вышеперечисленные варианты являются допустимыми.
Однако переменные чувствительны к регистру.
В приведенном выше примере $a и $A — это не одно и то же.
Нечувствительность PHP к пробелам
Когда вы пишете код, не имеет значения, есть ли пробелы между инструкциями. Это никак не влияет на результат.
Пример:
Результат:
Правила комментирования в PHP
Просто добавьте # перед фрагментом, к которому вы хотите добавить комментарий.
Пример:
Результат:
Вы также можете комментировать несколько строк, окружив весь код символом /* */.