Сделай Сам Свою Работу на 5

Тема 2. Введение в PHP (переменные и операторы)





 

Программы PHP могут выполняться двумя способами: как сценарное приложение Web-сервером и как консольные программы. Поскольку, нашей задачей является программирование web-приложений, мы преимущественно будем рассматривать первый способ.

PHP, как правило, используется сугубо для программирования приложений, связанных с Интернет. Однако, PHP можно еще использовать в качестве интерпретатора командной строки, в основном в *nix-системах. Последнее возможно при помощи CORBA и COM интерфейсов, а также при помощи расширения PHP-GTK. При таком использовании PHP возможно решение следующих задач:

· создание кросс-платформенных GUI приложений при помощи библиотеки PHP-GTK;

· автоматизация некоторых задач под Windows и Linux.

 

Рассмотрим процесс выполнения php-сценария при обращении браузера к серверу. Вначале браузер запрашивает страницу с расширением .php, после чего web-сервер пропускает программу через движок PHP и выдаёт результат в виде html-кода.

 

Команды PHP

 

Команды PHP заключаются в специальные теги, которые бывают четырёх видов (они полностью эквивалентны):

 

1. Инструкция обработки XML:



 

<?php

...

?>

 

 

2. Инструкция обработки SGML:

 

<?

...

?>

 

3. Инструкция обработки сценариев HTML:

 

<script language = "php">

...

</script>

 

4. Инструкция в стиле ASP:

 

<%

...

%>

 

Внутри какого-либо блока кода можно выйти из PHP, при условии, что дальше мы войдем в него снова и закончим код, т.е., возможна следующая конструкция (пример 2.1.1):

 

<?

if($i<3)

{

echo("<p>Hello, world!<p>");

?>

<p>Hello!</p>

// эта строка не интерпретируется как код PHP

// и выводится только если блок кода выполняется

<?

} // if

?>

 

Команда echo в PHP применяется для вывода фактически всего, что встречается на web-страницах (текст, разметку HTML, числа). Смысл ее действия понятен из приведенного примера.

 

Комментарии PHP

 

PHP предоставляет несколько методов для вставки комментариев. Проще всего пользоваться двойным слешем в стиле языка С (//), после чего PHP игнорирует всё, что расположено до конца строки. Также можно пользоваться многострочными комментариями в стиле С (/*…*/). Для однострочных комментариев можно также пользоваться символом решетки (#) (комментарий скриптовых языков UNIX).



 

Пример 2.2.1:

 

<?

echo("<p>Hello</p>"); // комментарий

echo("<p>Hello</p>"); # комментарий

/*

и это тоже комментарии

*/

?>

 

Следует помнить о том, что стили комментариев PHP действуют только внутри ограничителей PHP. Если PHP встретит эти символы комментариев вне ограничителей, то они, как и любой текст, будут помещены на html-страницу.

 

Пример 2.2.2:

 

<?

echo("<p>Hello</p>"); // нормальный комментарий

?>

// а вот этот комментарий отобразится браузером.

<!-- Комментарий HTML.

Будет виден в исходном коде HTML, но не в браузере -->

Заметим, что комментарии можно вставлять не только после конца оператора, а, например, и вот так:

<?

$a = "Hello, world";

echo strstr($a,"H");

// комментарий

?>

 

 

Переменные PHP

 

В РНР переменные начинаются со знака доллара ($). За этим знаком может следовать любое количество буквенно-цифровых символов и символов подчеркивания, но первый символ не может быть цифрой. Следует также помнить, что имена переменных в РНР чувствительны к регистру, в отличие от ключевых слов.

При объявлении переменных в РНР не требуется явно указывать тип переменной, при этом одна и та же переменная может иметь на протяжении программы разные типы.

Переменная инициализируется в момент присваивания ей значения и существует до тех пор, пока выполняется программа. Т.е., в случае web-страницы это означает, что до тех пор, пока не завершен запрос.

 

Внешние (суперглобальные) переменные PHP

 

После того, как запрос клиента проанализирован веб-сервером и передан движку РНР, он устанавливает ряд переменных, которые содержат данные, относящиеся к запросу и доступны во время его выполнения. Если директива register_globals в php.ini выставлена в on, РНР берёт переменные окружения системы и создаёт переменные с теми же именами и значениями в окружении сценария РНР для того чтобы сценариям, расположенным на сервере, были доступны особенности системы клиента.



Вне зависимости от значения директивы register_globals, движок PHP создаёт ряд суперглобальных переменных:

· $GLOBALS - Содержит ссылку на каждую переменную, доступную в данный момент в глобальной области видимости скрипта. Ключами этого массива являются имена глобальных переменных. $GLOBALS существует, начиная с PHP 3.

· $_SERVER - Переменные, установленные web-сервером либо напрямую связанные с окружением выполнения текущего скрипта. Аналог старого массива $HTTP_SERVER_VARS (который по-прежнему доступен, но не рекомендуется).

· $_GET - Переменные, передаваемые скрипту через HTTP GET. Аналог старого массива $HTTP_GET_VARS (который по-прежнему доступен, но не рекомендуется).

· $_POST - Переменные, передаваемые скрипту через HTTP POST. Аналог старого массива $HTTP_POST_VARS (который по-прежнему доступен, но не рекомендуется).

· $_COOKIE - Переменные, передаваемые скрипту через HTTP cookies. Аналог старого массива $HTTP_COOKIE_VARS (который по-прежнему доступен, но не рекомендуется).

· $_FILES - Переменные, передаваемые скрипту через HTTP post-загрузку файлов. Аналог старого массива $HTTP_POST_FILES (который по-прежнему доступен, но не рекомендуется).

· $_ENV - Переменные, передаваемые скрипту через окружение. Аналог старого массива $HTTP_ENV_VARS (который по-прежнему доступен, но не рекомендуется).

· $_REQUEST - Переменные, передаваемые скрипту через механизмы ввода GET, POST и COOKIE, и которым, следовательно, нельзя доверять. Наличие и порядок включения переменных в этот массив определяется в соответствии с директивой конфигурации PHP variables_order. Этот массив не имеет прямых аналогов в версиях PHP до 4.1.0.

 

 

Рассмотрим, как РНР создаёт группу GET-переменных, которые создаются при анализе строки запроса. Строка запроса представляет собой информацию, следующую за символом "?" в запрошенном URL. РНР разбивает строку запроса по символам & на отдельные элементы, а затем ищет в каждом из этих элементов знак "=". Если знак "=" найден, то создаётся переменная с именем из символов, стоящих слева от знака равенства. Рассмотрим следующую форму (пример 2.4.1):

 

<form action = "http://localhost/PHP/test.php" method="get">

HDD: <input type="text" name="hdd" /><br>

CDROM: <input type="text" name="cdrom" /><br>

<input type="submit"/>

 

Если в этой форме в строке HDD набрать, к примеру, "Maxtor", а в строке CDROM "Nec", то она сгенерирует следующую форму запроса:

 

http://localhost/PHP/test.php?hdd=Maxtor&cdrom=Nec

 

В нашем случае РНР создаст следующие переменные:

$hdd = "Maxtor"

$cdrom = "Nec"

 

Если register_globals==off, то РНР доступ к данным переменным следует осуществлять через массив $_GET:

$_GET["hdd"] = "Maxtor"

$_GET["cdrom"] = "Nec"

 

Если запрос страницы выполняется при помощи метода POST, то появляется группа POST-переменных, которые интерпретируются также и помещаются в массив $_POST.

 

Константы PHP

 

Константы объявляются в РНР при помощи функции define():

 

define(CONSTANT, value)

 

Первый параметр этой функции – имя константы, второй – её значение. При использовании константы на неё ссылаются по имени (пример 2.5.1):

 

<?

define (CONSTANT1,15);

define (CONSTANT2,"\x20"); // код пробела

define (CONSTANT3,"Hello");

echo (CONSTANT1);

echo (CONSTANT2);

echo (CONSTANT3);

?>

По традиции имена констант пишут буквами верхнего регистра. Существует функция defined(), которая проверяет, определена ли константа (пример 2.5.2):

 

<?

define(CONSTANT,"Hello");

if(defined("CONSTANT"))

{

echo("<p>CONSTANT is defined</p>");

}

?>

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.