Структура PHP - программы.

Пишем программу на PHP:

<?

echo "<html><body><h1>";

echo " Hello, $my_name";

echo "</h1></body></html>";

?>

Код PHP заключается в специальные тэги <? и ?>. После тэга начала сценария (<?) следует первый оператор - echo. Оператор echo осуществляет вывод информации. Выводимая оператором echo строка заключается в кавычки. Первый оператор выводит тэги html, body, h1. Второй оператор echo "Hello, $my_name"; выводит слово Hello и значение переменной $my_name. Перед именем переменной ставится знак $. Присваивание переменной какого-либо значения осуществляется оператором присвоения, который обозначается знаком "=" (равно). Примеры:

$i=0;

$d=7;

$s=5 + $d// $i=12

PHP сценарии можно записывать и так:

<html><body><h1>

<? echo "Hello, $my_name"; ?>

</h1></body></html>

Комментарии

Комментарии в сценариях могут быть трех типов:

# это комментарий

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

/*

А это

длинный многострочный

комментарий

*/

Правила задания переменных в PHP:

Типы переменных.

Тип переменной
Описание
integer Целое число.
double (или float) Вещественное число очень большой точности.
string Строка.
array Массив
object Язык PHP поддерживает принципы объектно-ориентированного программирования. Доступ к отдельным элементам объекта осуществляется с помощью оператора ->
bool

Логический тип данных. Переменные этого типа могут принимать только одно из двух значений:

true (истина) или false (ложь).

Функции определения и задания типа данных.

Используются семь функций для определения типа данных:

Логические переменные и их особенности.

В PHP истиной является любое не равное нулю число, любая непустая строка, значение true. Значение false, пустая строка, нуль - это ложь. Например:

<?

echo false;

echo true;

?>

Первый оператор выводит пустую строку, то есть ничего не выводит, а второй - выведет 1.

В использовании логических переменных в PHP имеется одна особенность. Если в операторах сравнения (= =, !=, <,>) один тип является логическим, то и второй тоже воспринимается, как логический. Модифицируем сценарий так:

<?

$x=10;

if ($x==1) echo " Переменная равна 1\n";

if ($x==true) echo " Переменная равна True\n"

?>

В первой строке переменной $x было присвоено значение 10. Затем $x сравнивается с 1 и если $x равно 1, то выводится строка "Переменная равна 1". Затем значение переменной сравнивается со значением True. И если $x равно true, то выводится строка "Переменная равна True". Исходя из приведенного выше утверждения, должна быть выведена только вторая строка.

Константы.

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

Задание констант. Функция define()

Для определения константы используется функция define. Эта функция имеет следующий формат:

define ($name, $value, $case_sen)

где $name - имя константы;

$value - значение константы;

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

Пример:

define ("pi",3.14,true);

echo pi;

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

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

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

Пример:

defined ("pi",3.14,true);

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

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

Имя
Значение

__FILE__

(два знака подчеркивания до FILE и два после)

Содержит имя программы, которая выполняется в данный момент.
__LINE__ Номер строки, которую сейчас обрабатывает интерпретатор.
PHP_OS Имя и версия операционной системы, под которой запущен PHP.
PHP_VERSION Версия PHP.
TRUE,true,FALSE,false Логические константы.

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

Оператор присваивания позволяет придать переменной некоторое значение.

Например:

$x = 4;

$y = $s;

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

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

Проверка существования переменной. Функция isset()

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

<?

if (isset($m_name))

{

$x = $m_name;

}

?>

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

Удаление переменных. Функция unset()

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

<?

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

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

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

?>

Операции в PHP.

Арифметические операции.

Также возможно использование скобок. К арифметическим операциям можно отнести операции инкремента и декремента:

Битовые операции.

Данные операции предназначены для установки или снятия групп битов целочисленной переменной:

0000 - это ноль

0001 - это 1

0010 - это 2

0011 - это 3

0100 - это 4

0101 - это5

. . .

1111 - это 15

. . .

К битовым операциям относятся:

Логические выражения.

Логические выражения - это выражения, результатом которых может быть или истина, или ложь. Примеры:

$x = true;    // $x = истина

$x = $y<0;    // $x = true, если $y<0

$x = $y== 0;    // $x = true, если $y = 0

$x = $y>0&&$y<=10;    // $x = true, если $y<0 и $y<=10, то

                                       // есть $y в диапазоне от 0 до 10.

В логических выражениях можно использовать операторы сравнения и логические операции.

Операторы сравнения:

== - равно;

!= - не равно;

< - меньше;

> - больше;

>= - больше или равно;

<= - меньше или равно.

Логические операции:

Строки и строковые выражения.

Между строками в кавычках и в апострофах существует большая разница. Если строка заключена в апострофы, то все символы ,трактуются как есть. Исключения составляют последовательности \` и \\. Первая представляет собой обыкновенный апостроф, а вторая - обратную наклонную черту.

Строки в кавычках позволяют вывести значение переменной. Пример:

$s=10;

echo "$a"; // строка в кавычках

echo '$a'; // строка в апострофах

Первый оператор выведет 10 - значение переменной $a. Второй напечатает то, что заключено между апострофами - $a.

Кроме того, строки в кавычках могут содержать следующие специальные символы:

\n - символ новой строки;

\r - символ возврата каретки;

\t - символ табуляции;

\$ - знак доллара;

\" - кавычка;

\\ - обратный слеш;

\xNN - символ с кодом NN (в шестнадцатеричной системе).

Строковые операции.

Строковых операций в PHP всего две:

$s1.$s2 - конкатенация (слияние) двух строк;

$s1[n] - обращение к символу в строке.

Все остальные действия над строками выполняются стандартными функциями.

Присвоить значение строке можно:

$s = "Hello";

$s = "Это большая

многострочная строковая

константа";

Многострочные строковые переменные.

Записать большое текстовое сообщение можно так:

$s = <<<LABEL

Текст

. . .

LABEL;

При использовании этого способа записи многострочных строковых переменных, нужно помнить три правила:

Пример вывода строки "Hello word!" с помощью метода слияния строк:

<?

$a = "Hell"

echo $a."o world!";

?>

Строки в обратных кавычках.

Для запуска внешней программы и присвоение переменной результата ее работы, используются строки в обратных кавычках (они находятся под тильдой):

$directory = `dir`;

echo "<h1>Содержимое каталога:</h1><br><pre> $directory";

Оператор эквивалентности (= = =)

Пример:

<?

$x = 0; //число, равное 0

$s = ""; //пустая строка

echo gettype ($x)."\n";

echo gettype ($s)."\n";

if ($x===$s) echo "x =s";

Ссылки жесткие.

Жесткая ссылка - это просто псевдоним имени другой переменной. Для создания жесткой ссылки используется оператор &:

<?

$x = 77;

$link = &$x;

$kink = 66;

echo $link;

?>

В результате программа выведет - 66. Для разрыва связи между переменной и ссылкой используется функция UnSet():

UnSet ($link);

Саму переменную нельзя удалить пока на нее ссылается хотя бы одна ссылка.

Символические ссылки.

Это обыкновенная переменная, содержащая имя другой переменной. Для доступа к значению ссылки используется двойной знак $$:

<?

$x = 77;

$link ="x"; // символическая ссылка на переменную $x

echo $$link; // выводит 77

echo $link; // выводит x

$$link = 66; // аналогично $x = 66

echo $x; // выводит 66

?>

использование символических ссылок может запутать программу, лучше использовать жесткие ссылки.

Условный оператор.

Конструкция if-else (условный оператор) является, самой распространенной. Синтаксис конструкции if-else таков:

if (логическое выражение)

    оператор_1;

else

    оператор_2;

Первый оператор будет выполнен, если логическое выражение истинно, второй - если логическое выражение ложно.

Сокращенная форма записи:

if (логическое выражение)

    оператор_1;

Если выполняется не один оператор, а целая группа, тогда операторы помещают в блок {}:

if (логическое выражение)

    {

    оператор_1;

    . . .

    оператор_i;

    }

else

    {

    оператор_i+1;

    . . .

    оператор_n;

    }

Очевидно, что несколько операторов можно записать в одну строку:

if (логическое выражение) { оператор_1; . . . оператор_i; }

В данном случае после фигурной скобки можно ставить точку с запятой, а можно и не ставить. Но если используется полная конструкция (то есть "else"), тогда точка с запятой не ставится. Если вместо блоков операторов используется только один оператор, тогда точка с запятой после него обязательна:

if ($a>5) echo "a>5";

else echo "a<=5";

Циклы.

Цикл позволяет повторить определенное количество раз какие-нибудь операторы. Данные операторы называются телом цикла. Проход цикла называется итерацией. Поддерживается три типа циклов:

Цикл с предусловием While.

Принцип работы цикла с предусловием:

Синтаксис цикла с предусловием:

while (логическое выражение)

    инструкция;

В данном случае телом цикла является "инструкция". Обычно тело цикла состоит из большего числа операторов. Пример цикла:

<?

$i = 0;

while ($i ++ <10) echo $i;

?>

Данная программа выведет строку 12345678910. Следует обратить внимание на последовательность выполнения условия $i++ <10.

Сначала проверяется условие, а только потом увеличивается значение переменной. Если же поставить операцию инкремента перед переменной (++$i <10), то сначала будет выполнено увеличение переменной, а только потом - сравнение. В результате получим строку 123456789.

Цикл с постусловием do while.

Цикл с постусловием отличается от цикла с предусловием тем, что сначала выполняется тело цикла, а только потом проверяется условие. Таким образом ,тело цикла хотя бы один раз, но будет обязательно выполнено.

Синтаксис цикла do while:

do

    {

    //тело цикла

    }

while (условие);

Пример:

<?

$i = 1;

do echo $i; while ($i++ <10);

?>

В результате получаем строку 12345678910.

Цикл со счетчиком For.

Цикл со счетчиком используется для выполнения тела цикла определенное количество раз.

Синтаксис цикла:

for (команды_инициализации; условие; команды_после инициализации) { тело цикла }

Оператор for начинает свою работу с выполнения команд инициализации. Данные команды выполняются всего лишь раз. После этого выполняется условие: если оно истинно, выполняется тело цикла. После того, как будет выполнен последний оператор тела, выполняются команды "после итерации". Затем снова проверяется условие, в случае, если оно истинно, выполняется тело цикла и поститерационные команды, и т.д.

Пример:

<?

for ($i =0; $i<10; $i++) echo $i;

?>

В результате сценарий выведет строку 0123456789.

Вложенные циклы.

Каждый цикл может содержать в своем теле несколько циклов. Каждый из этих циклов называется вложенным циклом. Вкладываться  может неограниченное число циклов, причем они могут быть разного типа - while, do или for.

Операторы break и continue.

При использовании циклом можно использовать операторы break  и continue. Первый прерывает работу всего цикла, а второй - только работу текущей итерации. Примеры:

<?

$i = 0;

while ($i++ <10)

    {

    if ($i ==3) break;

echo "Итерация $i\n";

    }

?>

В этом примере после второй итерации работа цикла будет прервана и программа выведет строки:

Итерация 1

Итерация 2

Если же вместо оператора break использовать оператор continue, будет прервана работа только после третьей итерации и получаем вывод:

Итерация 1

Итерация 2

Итерация 4

Итерация 5

. . .

Итерация 10

Цикл перебора массивов foreach.

Данный цикл предназначен специально для перебора массивов.

Синтаксис данного цикла таков:

foreach (массив as $ключ=>$значение)

операторы;

Операторы, содержащиеся в теле цикла, будут выполнены для каждого элемента массива. Переменная $ключ будет содержать имя ключа элемента, а переменная $значение - значение элемента.

Следующий пример отображает значение массива $GLOBALS, содержащего глобальные переменные (будут выведены как имена переменных, так и их значения):

<?

foreach ($GLOBALS as $key=>$value)

echo "$key = $value\n";

?>

Инструкция switch-case (конструкция выбора).

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

Синтаксис switch-case таков:

switch (выражение)

{

case значение1 : команды_1; [break;]

. . .

case значение N : команды_N; [break;]

[default: команды_по_умолчанию; [break;]]

}

Альтернативный синтаксис конструкции выглядит так:

switch (выражение):

    case значение1: команды1; [break;]

. . .

case значениеN: команды_N; [break;]

[defaut: команды_по_умолчанию; [break;]]

endswitch;

Работает эта конструкция следующим образом:

  1. Вычисляется значение выражения.
  2. Просматривается набор значений. Пусть значение_i  равно значению выражения, вычисленного на первом шаге. Если не указан оператор break, то будут выполнены команды i, i+1, i+2, ...., N. В противном случае (есть break) будет выполнена команда с номером i.
  3. Если ни одно значение из набора не совпало со значением выражения, тогда выполняется блок default, если он указан.

Инструкция require.

Синтаксис инструкции:

require имя_файла;

Интерпретатор анализирует сценарий и, найдя require, просто заменяет ее содержимым указанного файла. Это может быть HTML - файл или на PHP. В последнем случае содержимое файла должно быть обрамлено тэгами <? и ?> - как в случае с обыкновенным сценарием. Вставка содержимого файла, происходит ДО выполнения сценария. Например:

<html><head>

<title>My Company's Official Web Page</title>

</head>

<body>

Сценарий:

require header.html

/* тело документа */

Инструкция include.

В отличии от require директива include позволяет включить код в сценарий во время выполнения сценария.

Синтаксис:

include имя_файла;

Всегда заключайте инструкцию include  в фигурные скобки!!!

Особенности использования include и require.

PHP преобразует сценарий в собственное внутренне представление. Первую строку, вторую, третью ... И так, пока не дойдет до инструкции include. Затем PHP прекращает транслировать сценарий и переключается на указанный в include файл.

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

Инструкции однократного включения include_once и require_once.

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

Работают эти инструкции точно также, как и include и require, но с одним отличием: перед включением файла интерпретатор проверяет, включался ли это файл или нет.

 

 

 

 

 

 

 

 

 

 

 

 

Hosted by uCoz