Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 семестр / Инструм.средства / ЛЕКЦИИ / Лекция №4 Общие понятия и описание PHP.doc
Скачиваний:
54
Добавлен:
17.02.2016
Размер:
186.88 Кб
Скачать

3. Константы

Константы содержат постоянные значения. В отличие 6т переменной, вы не можете изменить значение константы, которое было ей присвоено при ее объявлении. Константы удобно использовать для хранения значений, которые не.должны изменять во время работы программы, например, имя разработчика программы.

Задание констант. Функция defrne() Для определения константы используется функция define. Эта функция имеет следующий формат: define (Sname, Svalue, $case_sen) где

Sname — имя константы;

Svalue — значение константы;

Scase_sen — необязательный параметр логического типа, указывающий следует ли учитывать регистр букв (true) или HI. (false).

Пример:

define ("pi",3.14,true);

echo pi;

Если параметр $case_sen (именно так называется третий параметр) равен true, то интерпретатор будет учитывать регистр символом при работе с именем константы. Обратите внимание, что после объявления константы ее можно использовать без предваряющего символа доллара.

При объявлении констант нужно помнить два важных момента:

* Имя константы должно быть заключено в кавычки, а не в апострофы.

* Нельзя объявлять две константы с одним и тем же именем.

Проверка существования констант. Функция defined()

Для проверки существования константы можно использовать функцию definedQ. Данная функция возвращает true, если константа объявлена, и false — если не объявлена.

Пример:

define ("pi",3.14,true);

if ( (defined("pi")==true) echo "Константа объявлена";

Стандартные константы

При программировании на PHP вы можете использовать следующие стандартные константы (см. табл. 2).

Таблица 2. Стандартные константы.

Имя

Значение

__FILE__

Содержит имя программы, которая выполняется в даннй момент

__LINE__

Номер строки, которую сейчас обрабатывает интарпритатор

PHP_OS

Имя и версия операционной системы, под которой запущен PHP

PHP_VERSION

Версия PHP

TRUE, true, FALSE, false

Логические константы

4. Операции с переменными

Мы уже рассмотрели две важнейшие операции с переменными — определение и установку типа переменной. Поэтому нам осталось рассмотреть всего три операции:

» Присвоение значения.

» Проверка существования переменной.

» Уничтожение переменной.

Вы можете спросить, а как же арифметические и другие операции? Все остальные операции специфичны для конкретного типа переменной. Например, операция умножения совершенно бессмысленна для двух строк или числа и строки.

Тем не менее, PHP является очень гибким языком и выполняет преобразования числа в строку (и наоборот) незаметно для нас. Когда я говорил, что операция умножения бессмысленна для двух строк, я был не совсем прав. Выполните этот сценарий, и вы убедитесь в этом:

<?

$х = "10"; // строка

$у = "2"; // и это строка

echo $x*$y;

?>

Сценарий, вместо сообщения об ошибке, выведет на экран число 20. Как видите, если строка допускает преобразование типа, то PHP работает со строками, как с обыкновенными числами.

Присвоение значений. Оператор присваивания

Оператор присваивания позволяет придать переменной некоторое значение. Нет такого языка программирования, в котором не было бы оператора присваивания. Поэтому я вас сильно не удивлю, если скажу, что в PHP он тоже есть:

$х = 4;

$у = $х;

Вот, что вам нужно знать об этом операторе и правилах присваивания:

* Переменной можно присвоить: какое-либо значение; значение, возвращаемое функцией; значение другой переменной; значение выражения ($х + $у * 2 - 7); ссылку на другую переменную.

* В PHP нет указателей, поэтому, если в переменную $х вы поместите файл размером 500 Кб, а потом присвоите ее переменной $у, то будет создана точная копия переменной $х, которая тоже будет занимать 500 Кб. Итого у вас в памяти будет почти один мегабайт информации. Это нужно учитывать при создании так называемых временных переменных. Желательно после окончания работы с такой переменной освободить память, то есть уничтожить переменную.

* Интерпретатор сам выполняет преобразование типов, но иногда привести тип переменной к другому просто невозможно. Например, как можно преобразовать строку «1212ю31е» в число?

* Как я уже говорил, при присваивании создается точная копия переменной, копируется также и тип переменной. Это означает, что если вы массиву присвоите число, весь массив будет потерян.

Работа оператора присваивания состоит из двух последовательных этапов:

1. Вычисление выражения, стоящего в правой части.

2. Присвоение переменной, стоящей в левой части, значения, полученного в пункте 1.

Таким образом, из-за того, что процесс присвоения состоит из двух раздельных этапов, в левой и правой части оператора присваивания может находиться одна и та же переменная. Например: $х = $х+4.

Кроме того, так же как и в языке Си, в PHP существует возможность использования операции присваивания в следующем виде: переменная операция=значение.

Например:

$х +=10; // эквивалентно $х = $х + 10;

$х *=10; // эквивалентно $х = 5х * 10;

Проверка существования переменной

Проверка существования переменной — это очень удобная возможность языка программирования. Вы можете спросить: «А зачем она нужна? Что я не помню, объявлял я переменную или нет?» Я сейчас поясню. Помните, я говорил, что переменные может объявлять сам PHP — при разборе параметров. Так вот, благодаря возможности проверки существования переменной вы можете проверить, передан ли сценарию определенный параметр или нет, а только потом начинать с ним работать. Рассмотрим два сценария.

Сценарий 1:

<?

?х = $m_name;

?>

Сценарий 2:

<?

if (isset ($m_name))

{ $x = $m_name;

} ?>

В первом случае мы сразу начинаем работать с переменной. Если по каким-либо причинам интерпретатор не передал сценарию параметр m_name, мы получим сообщение о том, что переменная не определена. Во втором сценарии мы с помощью функции isset ($m_name) проверяем существование переменной $m_name, а только потом начинаем с ней работать. В результате ваш сценарий не прекратит свою работу из-за банальной ошибки пользователя, если тот забудет ввести свое имя.

Конечно, если проверять все переданные параметры, наша программа станет намного «толще» (особенно, если параметров много). Однако мы можем поступить проще. Предположим, что нам нужно написать анкету на PHP, содержащую имя и адрес электронной почты. Алгоритм нашего сценария будет такой:

* Если пользователь не передал параметры, значит мы выводим форму анкеты.

* Если параметры переданы (о чем свидетельствует наличие переменной кнопки submit), значит можно начать обработку параметров.

Выходит, что нам достаточно проверить только один параметр:

<htmlxhead><title>Aнкeтa</title></head><body>

if(!isset($go))

{

// переменная go (кнопка) не установлена, выводим форму:

echo "<form action=script.php rr.ethod=post>" ; /*

Выводим поля анкеты, а затем кнопку до */ echo "

<input type = subrriit name=go value=Sendx/f orra >" ;

1

else {

/'* Параметры введены пользователем, начинаем обработку */

}

Проверив существование кнопки go, мы начинаем обработку параметров. В выводимой форме я использовал метод POST. Для PHP-сценариев совершенно нет никакой разницы, каким методом им будут переданы параметры, поэтому из соображений безопасности лучше использовать метод POST (никто из-за спины не увидит, что ввел пользователь), да и выглядит он более эстетично (ничего лишнего в строке адреса не отображается).

Удаление переменных

Чтобы не засорять память, можно удалить ненужные нам переменные. Это можно делать с помощью функции unset(). Эта функция удаляет указанную в скобках переменную из памяти, и программа продолжает выполняться как-будто эта переменная вообще не была инициализирована.

<?

$а = читаем_большой_файл;

обрабатываем файл;

unset ($а); // освобождаем память

?>

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