главная :: основы PHP
Основные конструкции РНР
Прежде чем переходить к изложению основного материала, занимающего оставшуюся часть книги, я представлю несколько вспомогательных
концепций, относящихся к РНР.
Переход в РНР
Механизм лексического анализа должен как-то отличать код РНР от других элементов страницы. Идентификация кода РНР называется
«переходом в РНР» (escaping to РНР). Существуют четыре варианта оформления перехода в РНР:
стандартные теги;
короткие теги;
теги script;
теги в стиле ASP.
Стандартные теги
Стандартные теги используются программистами РНР чаще остальных способов, что объясняется наглядностью и удобством этой формы
записи:
У стандартных тегов есть еще одно дополнительное преимущество: за открывающей конструкцией следуют символы php, однозначно
определяющие тип дальнейшего кода. Это удобно при использовании в одной странице нескольких технологий — таких, как JavaScript,
серверные включения и РНР. Весь текст, расположенный до закрывающего тега ?>, интерпретируется как код РНР.
Короткие теги
Короткие теги обеспечивают наиболее компактную запись для перехода в РНР:
print "Welcome to the world of PHP!"; ?>
По умолчанию короткие теги не используются, их нужно специально активизировать. Это можно сделать двумя способами:
указать ключ -enable-short-tags при компиляции РНР;
включить параметр short_open_tag в файл php.ini.
Теги script
Некоторые текстовые редакторы ошибочно принимают код РНР за код HTML (то есть визуально отображаемый текст), что нарушает работу
над web-страницей. Проблема решается использованием тегов script:
Теги в стиле ASP
Четвертый и последний способ оформления внедренного кода РНР — теги в стиле ASP (Active Server Page). Они похожи на короткие теги,
описанные выше, однако вместо вопросительного знака используется знак процента (%):
<%php print "Welcome to the world of PHP!"; %>
У тегов в стиле ASP есть одна особенность, делающая запись более компактной. Во внедренный код РНР не обязательно включать команду
print — знак равенства (=), расположенный сразу же после открывающего тега в стиле ASP, приказывает лексическому механизму РНР вывести
значение указанной переменной:
<%=$variable %>
Этот удобный стиль позволяет использовать в страницах фрагменты вида
<%
// Присвоить значение переменной $recipe
$recipe = "Lasagna":
%>
Luigi's favorite recipe is <%=$recipe;%>
Этот фрагмент содержит два разных сценария РНР. В первом сценарии переменной $recipe присваивается значение "Lasagna". Позднее, когда
потребуется вывести значение $гесiре, специально для этой цели используются теги в стиле ASP. Кстати, такая возможность существует и для
коротких тегов (...?>).
Внедрение HTML в код РНР
Одной из самых замечательных особенностей HTML является простота использования в сочетании с другими языками — например, HTML и
JavaScript (см. листинг 1.2).
Листинг 1.2. Вывод кода HTML средствами РНР
Basic PHP/HTML integration
// Обратите внимание на присутствие тегов HTML в команде print.
print "PHP/HTML integration is cool.";
?>
Рис. 1.2. Форматирование даты с использованием функции РНР date()
В листинге 1.2 показано, как код HTML интегрируется прямо в команды РНР. В данном примере в код РНР включаются теги заголовка
третьего уровня (...). В итоговом документе эти теги ничем не отличаются от обычного кода HTML.
В листинге 1.3 продемонстрировано включение динамической информации в web-страницу на примере вывода текущей даты в заголовке окна
(рис. 1.2).
Листинг 1.3. Динамический вывод даты
PHP Recipes | print (date("F d, Y")); ?>
Простая функция РНР date() форматирует дату одним из нескольких стандартных способов. Отформатированная дата вставляется в заголовок
окна.
РНР также позволяет изменять формат конструкций HTML — для этого соответствующая характеристика тега присваивается переменной,
вставляемой в файл. В листинге 1.4 эта возможность продемонстрирована на примере присваивания характеристики шрифта (h3) переменной
$big_font и ее последующего использования при выводе текста.
Листинг 1.4. Динамические теги HTML
PHP Recipes | print (date("F d, Y")); ?>
$big_font = "h3";
?>
print "<$big_font>PHP Recipes$big_font>"; ?>
Листинг 1.4 представляет собой разновидность листинга 1.3 — на этот раз тег заголовка (...) сначала присваивается переменной, а
затем эта переменная используется в команде print. В итоговом документе эти теги ничем не отличаются от обычного кода HTML.
Включение нескольких сценариев РНР
Для обеспечения необходимой гибкости при построении динамических web-приложений можно внедрить в страницу несколько сценариев
РНР (листинг 1.5).
Листинг 1.5. Включение нескольких сценариев РНР в один документ
print "Another PHP-enabled page";
Svariable = "Hello World!";
?>
print Svariable; ?>
Листинг 1.5 начинается как типичная (пусть несколько упрощенная) страница
HTML. При внедрении нескольких сценариев переменные, значения которых были
присвоены в одном сценарии, могут использоваться в другом сценарии той же
страницы.
Комментарии в коде РНР
Комментарии следует использовать даже в относительно простых и незамысловатых сценариях. В РНР существуют два формата
комментариев:
Однострочные комментарии обычно используются для коротких пояснений или примечаний, относящихся к локальному коду.
Многострочные комментарии обычно используются при оформлении алгоритмов на псевдокоде и в более подробных объяснениях.
Оба способа в конечном счете приводят к одинаковому результату и совершенно не влияют на общее быстродействие сценария. Выбор
варианта остается за вами.
Однострочные комментарии
При оформлении однострочных комментариев используется два стиля комментирования. Оба стиля работают абсолютно одинаково, но в них
используются разные служебные символы. В одном случае комментарий начинается с двойного символа «косая черта» (//), а в другом — с
символа фунта (#). Ниже приведены примеры обоих стилей:
// Выбрать цвет роз $rose_color = "red";
# Выбрать цвет фиалок $violet_color = "blue";
print "Roses are $rose_color, violets are $violet_color"
?>
Конечно, оба стиля однострочных комментариев могут применяться для построения искусственных многострочных комментариев, как
показано в следующем листинге:
// файл: example. php
// автор: У.Дж.Гилмор
// дата: 24 августа 2000 г.
print "An example with comments";
?>
Многострочные комментарии
В РНР существует возможность построения подробных комментариев, занимающих несколько строк. Такие комментарии оформляются в стиле
языка С — их начало и конец обозначаются символами /* и */.
/*
Сценарий: multi_coramment_example.php
Назначение : пример использования многострочных комментариев
Автор: У.Дж.Гилмор
Дата: 14 июня 2000 г.
*/
print "A multiline comment can be found at the top of this script!";
?>
Как видите, многострочные комментарии особенно удобны для вывода относительно длинной сводной информации обо всем сценарии или
его части.
|