- Основные конструкции РНР
Печать: Шрифт: Абв Абв Абв
danilov 24 Февраля 2006 в 22:54:38
Основные конструкции РНР

Прежде чем переходить к изложению основного материала, занимающего оставшуюся часть книги, я представлю несколько вспомогательных концепций, относящихся к РНР.

Переход в РНР

Механизм лексического анализа должен как-то отличать код РНР от других элементов страницы. Идентификация кода РНР называется «переходом в РНР» (escaping to РНР). Существуют четыре варианта оформления перехода в РНР:

  • стандартные теги;

  • короткие теги;

  • теги script;

  • теги в стиле ASP.

  • Стандартные теги


  • Стандартные теги используются программистами РНР чаще остальных способов, что объясняется наглядностью и удобством этой формы записи:

    <?php print "Welcome to the world of PHP!": ?>


    У стандартных тегов есть еще одно дополнительное преимущество: за открывающей конструкцией <? следуют символы php, однозначно определяющие тип дальнейшего кода. Это удобно при использовании в одной странице нескольких технологий — таких, как ЖаваСкрипт, серверные включения и РНР. Весь текст, расположенный до закрывающего тега ?>, интерпретируется как код РНР.

    Короткие теги

    Короткие теги обеспечивают наиболее компактную запись для перехода в РНР:

    <? print "Welcome to the world of PHP!"; ?>


    По умолчанию короткие теги не используются, их нужно специально активизировать. Это можно сделать двумя способами:

    указать ключ -enable-short-tags при компиляции РНР;
    включить параметр short_open_tag в файл php.ini.

    Теги script

    Некоторые текстовые редакторы ошибочно принимают код РНР за код HTML (то есть визуально отображаемый текст), что нарушает работу над web-страницей. Проблема решается использованием тегов script:

    <script language="php">

    <?php print "Welcome to the world of PHP!"; ?>

    </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 и ЖаваСкрипт (см. листинг 1.2).

    Листинг 1.2. Вывод кода HTML средствами РНР

    <html>
    <head>
    <title>Basic PHP/HTML integration</title>
    </head>
    <body>
    <?
    // Обратите внимание на присутствие тегов HTML в команде print.
    print "<h3>PHP/HTML integration is cool.</h3>";
    ?>
    </body>
    </html>


    Рис. 1.2. Форматирование даты с использованием функции РНР date()

    В листинге 1.2 показано, как код HTML интегрируется прямо в команды РНР. В данном примере в код РНР включаются теги заголовка третьего уровня (<h3>...</h3>). В итоговом документе эти теги ничем не отличаются от обычного кода HTML.

    В листинге 1.3 продемонстрировано включение динамической информации в web-страницу на примере вывода текущей даты в заголовке окна.

    Листинг 1.3. Динамический вывод даты

    <title>PHP Recipes | <? print (date("F d, Y")); ?></title>


    Простая функция РНР date() форматирует дату одним из нескольких стандартных способов. Отформатированная дата вставляется в заголовок окна.

    РНР также позволяет изменять формат конструкций HTML — для этого соответствующая характеристика тега присваивается переменной, вставляемой в файл. В листинге 1.4 эта возможность продемонстрирована на примере присваивания характеристики шрифта (h3) переменной $big_font и ее последующего использования при выводе текста.

    Листинг 1.4. Динамические теги HTML

    <html>
    <head>
    <title>PHP Recipes | <? print (date("F d, Y")); ?></title>
    </head>
    <?
    $big_font
    = "h3";
    ?>
    <body>
    <? print "<$big_font>PHP Recipes</$big_font>"; ?>
    </body>
    </html>


    Листинг 1.4 представляет собой разновидность листинга 1.3 — на этот раз тег заголовка (<h3>...</h3>) сначала присваивается переменной, а затем эта переменная используется в команде print. В итоговом документе эти теги ничем не отличаются от обычного кода HTML.

    Включение нескольких сценариев РНР

    Для обеспечения необходимой гибкости при построении динамических web-приложений можно внедрить в страницу несколько сценариев РНР (листинг 1.5).

    Листинг 1.5. Включение нескольких сценариев РНР в один документ

    <html>
    <head>
    <title>
    <?
    print "Another PHP-enabled page";
    Svariable = "Hello World!";
    ?>
    </title></head>
    <body>
    <? print Svariable; ?>
    </body>
    </html>


    Листинг 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!";

    ?>


    Как видите, многострочные комментарии особенно удобны для вывода относительно длинной сводной информации обо всем сценарии или его части.
    Добавить сообщение
    Чтобы добавлять комментарии зарeгиcтрирyйтeсь