Изучаем PHP программирование

   Search   

Русская версия | English version   

Скрипты :: Секреты профессионалов :: Link :: FAQ   Пишите письма  



 

главная :: основы PHP

Основные конструкции РНР

Прежде чем переходить к изложению основного материала, занимающего оставшуюся часть книги, я представлю несколько вспомогательных концепций, относящихся к РНР. Переход в РНР Механизм лексического анализа должен как-то отличать код РНР от других элементов страницы. Идентификация кода РНР называется «переходом в РНР» (escaping to РНР). Существуют четыре варианта оформления перехода в РНР: стандартные теги; короткие теги; теги script; теги в стиле ASP. Стандартные теги Стандартные теги используются программистами РНР чаще остальных способов, что объясняется наглядностью и удобством этой формы записи: У стандартных тегов есть еще одно дополнительное преимущество: за открывающей конструкцией , интерпретируется как код РНР. Короткие теги Короткие теги обеспечивают наиболее компактную запись для перехода в РНР: По умолчанию короткие теги не используются, их нужно специально активизировать. Это можно сделать двумя способами: указать ключ -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 PHP/HTML integration is cool."; ?>

Hosted by uCoz
Рис. 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")); ?> PHP Recipes"; ?>
Hosted by uCoz
Листинг 1.4 представляет собой разновидность листинга 1.3 — на этот раз тег заголовка (

...

) сначала присваивается переменной, а затем эта переменная используется в команде print. В итоговом документе эти теги ничем не отличаются от обычного кода HTML. Включение нескольких сценариев РНР Для обеспечения необходимой гибкости при построении динамических web-приложений можно внедрить в страницу несколько сценариев РНР (листинг 1.5). Листинг 1.5. Включение нескольких сценариев РНР в один документ <? print "Another PHP-enabled page"; Svariable = "Hello World!"; ?>
Hosted by uCoz
Листинг 1.5 начинается как типичная (пусть несколько упрощенная) страница HTML. При внедрении нескольких сценариев переменные, значения которых были присвоены в одном сценарии, могут использоваться в другом сценарии той же страницы. Комментарии в коде РНР Комментарии следует использовать даже в относительно простых и незамысловатых сценариях. В РНР существуют два формата комментариев: Однострочные комментарии обычно используются для коротких пояснений или примечаний, относящихся к локальному коду. Многострочные комментарии обычно используются при оформлении алгоритмов на псевдокоде и в более подробных объяснениях. Оба способа в конечном счете приводят к одинаковому результату и совершенно не влияют на общее быстродействие сценария. Выбор варианта остается за вами. Однострочные комментарии При оформлении однострочных комментариев используется два стиля комментирования. Оба стиля работают абсолютно одинаково, но в них используются разные служебные символы. В одном случае комментарий начинается с двойного символа «косая черта» (//), а в другом — с символа фунта (#). Ниже приведены примеры обоих стилей: Конечно, оба стиля однострочных комментариев могут применяться для построения искусственных многострочных комментариев, как показано в следующем листинге: Многострочные комментарии В РНР существует возможность построения подробных комментариев, занимающих несколько строк. Такие комментарии оформляются в стиле языка С — их начало и конец обозначаются символами /* и */. Как видите, многострочные комментарии особенно удобны для вывода относительно длинной сводной информации обо всем сценарии или его части.

Designed by Fedin
All right reserved
2003-2004
Hosted by uCoz