Общие правила построения программы
Типы данных
Выражения
Функции
После краткого неформального введения в главе 2 вы уже имеете общие представления о том, как устроена PHP-программа. Теперь нам осталось закрепить и расширить ваши познания. Я полагаю, что РНР — это не первый язык программирования, который вы осваиваете, и буду по ходу дела ссылаться на аналогичные
конструкции из Си и Perl.
В этом небольшом разделе мы рассмотрим общие правила синтаксиса РНР-кода,
касающиеся использования тегов, разделителей и оформления комментариев.
3.1.1. Где размещается программа на РНР?
Когда PHP-машина приступает к обработке файла, она попросту фильтрует сквозь
себя все текстовые данные, которые не являются текстом PHP-программы. Поэтому если вы просто измените расширение HTML-файла на .php, он по-прежнему
будет корректно обрабатываться WWW-сервером.
Как только у вас возникает необходимость включить в некотором месте вашего
файла операторы РНР, вам необходимо перейти в «режим РНР» одним из перечисленных ниже способов.
3.1.1.1. Сокращенные теги РНР
Используются при необходимости включения кратких фрагментов кода. Обычно
это вызов одной или нескольких встроенных функций.
Пример:
<? echo ("Простейшая РНР-программа\n"); ?>
<?= expression ?> Это сокращение от "<? echo expression ?>"
Этот метод применим только в том случае, если при конфигурировании РНР вы включили поддержку коротких тегов. Это может быть выполнено либо путем установки параметра short_open_tag в конфигурационном файле php.ini, либо при
компиляции PHP-машины с установленным параметром конфигурации --enable-short-tags.
3.1.1.2. Развернутая форма тега
По сути не отличается от предыдущей, но явно указывает на вызов РНР-машины. Наиболее предпочтительный вариант.
<?php есhо("При работе с XHL используйте эту форму вызова\n");
?>
Этот метод позволяет легко интегрировать PHP-программы в новую версию языка описания страниц — XHTML.
3.1.1.3. Объявление через конструкцию script
Некоторые системы подготовки HTML-страниц, такие, как печально известный
FrontPage, не позволяют вам использовать приведенные выше теги. В этом случаевы можете для включения PHP-кода применить тег HTML script. Сделать это можно следующим образом:
<script language="php">
echo ("И снова выводим в HTML-страницу некий текст");
</script>
3.1.1.4. Выделение в стиле ASP
Наконец, вы можете использовать для выделения PHP-программы теги в стиле ASP:
<% echo ("Разрешается использование тегов ASP"); %>
<%= Svariable; # Это сокращение от "<%есnо ." %>
Использование этого метода допустимо в том случае, если в конфигурационном файле php.ini установлен параметр asp_tags.
внимание
В любом из методов включения PHP-программы закрывающий тег блока будет включать '
следующий за ним символ перевода строки.
Важной особенностью PHP-машины является возможность произвольного чередования HTML и PHP-кода в файле:
<?php
if ( boolean-expression )
{
?>
<strong>Это верно.</strong>
<?php
}
else
{
?>
<strong>Это неверно!</strong>
<?php
}
примечание
Реализация такого поведения довольно проста: PHP-машина интерпретирует весь текст
между тегами ?> и <?php как аргумент функции echo().
3.1.2. Завершение операторов и команд
Так же как в Си и Perl, в РНР для разделения операторов используется точка с запятой. Кроме того, в качестве индикатора завершения команды может использоваться и закрывающий тег (например ?>), поэтому два приведенных ниже фрагмента полностью эквивалентны:
&
<?php
echo "Стандартный оператор РНР";
?>
<?php echo "Оператор завершается закрывающим тегом" ?>
3.1.3. Комментарии в теле программы
Поскольку в РНР приходят разработчики, привыкшие работать с разными языками, то в ходе эволюции в РНР появилась возможность использования комментариев в стиле Си, C++ и Perl. Например:
<?php
echo " Привет!"; // Однострочный комментарий в стиле C++
/* А теперь введем многострочный комментарий
в стиле классического Си */
echo "И еще одни привет!";
echo "Последний привет от РНР"; # комментарий в стиле Perl
?>
Необходимо помнить, что однострочные комментарии на самом деле распространяют свое действие до конца строки или текущего вычислительного блока РНР-кода, в зависимости от того, что будет обнаружено анализатором раньше.
Поэтому в результате обработки PHP-машиной фрагмента:
<h1>Это <?php # echo "простой";?> пример.</hl> вы получите результат, приведенный на рис. 3.1.
Рис. 3.1. Результат обработки однострочных комментариев
И последнее замечание: вы должны избегать вложения многострочных комментариев в стиле Си ( /* ... */), что достаточно часто происходит при закрывании комментариями больших участков кода:
<?php
/*
echo "Это просто текст"; /* А это - комментарий, приводящий
к возникновению неприятностей */
*/
?>
|