>>>

Проектирование, разработка и оптимизация веб-приложений

Основы языка PHP

Константы

Константы определяются в PHP-программе с помощью функции define( ). Например:

define("PI", 3.1415927);

После определения константа не может быть изменена. В имени константы обычно используются только заглавные буквы.

PHP имеет ряд предопределенных констант. Например:

Переменные

Имя любой переменной в PHP начинается со знака $. Имена переменных чувствительны к регистру символов.

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

PHP поддерживает восемь типов данных:

Тип переменной можно проверить с помощью функции gettype().

Пример 1

<html>
<head>
 <title>Автоматическое изменение и проверка типа переменной</title>
</head>
<body>
<?php
$t = "0";
echo "t = $t -- ".gettype($t)."<br>";
$t += 2;
echo "t = $t -- ".gettype($t)."<br>";
$t = $t + 3.5;
echo "t = $t -- ".gettype($t)."<br>";
$t = 5 + "5 поросят";
echo "t = $t -- ".gettype($t)."<br>";
$t = 5.0 + "5 поросят";
echo "t = $t -- ".gettype($t);
?>
</body>
</html>

Тип переменной можно изменить с помощью функции settype().

Пример 2

<html>
<head>
 <title>Изменение типа переменной</title>
</head>
<body>
<?php
$t = 3.14;
echo "t = $t -- ".gettype($t)."<br>";
settype($t,"string");
echo "t = $t -- ".gettype($t)."<br>";
settype($t,"integer");
echo "t = $t -- ".gettype($t)."<br>";
settype($t,"double");
echo "t = $t -- ".gettype($t)."<br>";
settype($t,"boolean");
echo "t = $t -- ".gettype($t);
?>
</body>
</html>

Приведение типа переменной осуществляется с помощью операторов:

Отличие от изменения типа с помощью функции settype() состоит в том, что оператор приведения создает временную копию нового типа, оставляя саму переменную без изменений.

Пример 3

<html>
<head>
 <title>Приведение типа переменной</title>
</head>
<body>
<?php
$t = 3.14;
$tmp = (string) $t;
echo "tmp = $tmp -- ".gettype($tmp)."<br>";
$tmp = (int) $t;
echo "tmp = $tmp -- ".gettype($tmp)."<br>";
$tmp = (double) $t;
echo "tmp = $tmp -- ".gettype($tmp)."<br>";
$tmp = (bool) $t;
echo "tmp = $tmp -- ".gettype($tmp)."<br>";
echo "t = $t -- ".gettype($t);
?>
</body>
</html>

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

Пример 4

<html>
<head>
 <title>Использование динамической переменной</title>
</head>
<body>
<?php
$t = "Всем";		// переменной t присваиваем значение "Всем"
$$t = "привет!";	// Переменной "Всем" присваиваем значение "привет!"
echo "$$t ".$$t."<br>";
echo "$t ${$t}<br>";
echo "$t $Всем";
?>
</body>
</html>

В PHP возможно обращение к одной и той же переменной с использованием различных имен. Для реализации этого используются ссылки. Ссылки позволяют двум или большему количеству переменных ссылаться на одну и ту же область памяти.

Пример 5

<html>
<head>
 <title>Создание ссылки на переменную</title>
</head>
<body>
<?php
$t1 = 96;
$t2 = &$t1;
echo "t1 = $t1; t2 = $t2<br>";
$t1 = 315;
echo "t1 = $t1; t2 = $t2";
?>
</body>
</html>

Операторы

Операторы PHP напоминают общеизвестные операторы языка Си.

Унарные операторы

- Изменение знака на противоположный
! Дополнение. Используется для реверсирования значения логических переменных
++ Увеличение значения переменной. Может применяться и как префикс, и как суффикс
-- Уменьшение значения переменной. Может применяться и как префикс, и как суффикс

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

- Вычитание
+ Сложение
* Умножение
/ Деление
% Остаток от деления

Оператор конкатенации

Оператор конкатенации "." присоединяет правую строку к левой.

Пример 6

<html>
<head>
 <title>Конкатенация строк</title>
</head>
<body>
<?php
$a = "Всем";
$b = $a." привет!";
echo $b;
?>
</body>
</html>

Оператор конкатенации обрабатывает операнды любых типов как строки. Результат его выполнения всегда является строкой.

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

= Присваивание
+= Сложение ($n += 777; аналогично $n = $n + 777;)
-= Вычитание ($n -= 777; аналогично $n = $n - 777;)
*= Умножение
/= Деление
%= Остаток от деления
.= Конкатенация ($n .= "777"; аналогично $n = $n."777";)

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

Битовые операторы позволяют изменять отдельные биты целых чисел.

& И
| ИЛИ
^ Исключающее ИЛИ
~ Инверсия
>> Сдвиг вправо
<< Сдвиг влево

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

> Больше ( Больше ли первое значение, чем второе?)
>= Больше или равно ( Верно ли, что первое значение не меньше второго?)
< Меньше ( Меньше ли первое значение, чем второе?)
<= Меньше или равно (Верно ли, что первое значение не больше второго?)
== Равно (Равнозначны ли значения двух переменных?)
=== Идентично (Одинаковы ли как значения, так и типы двух переменных?)
!= , <> Не равно (Не равны ли значения двух переменных?)
!== Не идентично (Не одинаковы ли значения или типы данных двух переменных?)

Логические операторы

Логические операторы отличаются от битовых тем, что работают не с числами, а с логическими значениями: TRUE и FALSE.

and И
or ИЛИ
xor Исключающее ИЛИ
! Инверсия
>> Сдвиг вправо
<< Сдвиг влево
&& И
|| ИЛИ

Логические операторы "И" и "ИЛИ" имеют два формата. Это не синонимы. Дело в том, что оператор or имеет приоритет ниже, чем ||, а and - ниже, чем &&. Таким образом, при построении сложных условных выражений можно обойтись без скобок. Однако, в таком способе указания порядка проще и запутаться.

Проверка содержимого переменной

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

isset($имя_переменной) #Истина, если переменная объявлена даже без присваивания значения.

empty($имя_переменной) #Истина, если значение переменной равно нулю или пустой строке, либо переменная не объявлена.

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

is_int($number)

Результатом выполнения этой функции является TRUE, если переменная $number имеет тип integer. Рассмотрим подобные функции.

is_array ($var2) проверяет, является ли переменная $var2 массивом. is_f loat ($number) проверяет, является ли переменная $number числом с плавающей точкой. is_null ($varl) проверяет, равно ли значение переменной $varl нулю is_numeric($string) проверяет, является ли переменная $string числовой строкой. is_string ($string) проверяет, является ли переменная $string строкой.

Для проверки обратных условий следует воспользоваться символом восклицания (!). Например, при обработке следующего выражения будет получено значение TRUE, если переменная не объявлена:

! isset($имя_переменной)

Управляющие структуры

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

В языке PHP два условных оператора: if и ?.

Существует три типа оператора if. Первый тип - базовый условный оператор. Например:

if ($a > $b)
  {
  echo "А больше Б";
  }

Альтернативный синтаксис оператора if:

if ($a > $b):
  echo "А больше Б";
endif;

Второй тип - условный оператор if-else. Например:

if ($a > $b)
  {
  echo "А больше Б";
  }
else
  {
  echo "А не больше Б";
  }

Альтернативный синтаксис оператора if-else:

if ($a > $b):
  echo "А больше Б";
else:
  echo "А не больше Б";
endif;

Третий тип - условный оператор if-elseif. Например:

if ($a > $b)
  {
  echo "А больше Б";
  }
elseif ($a == $b)
  {
  echo "А равно Б";
  }
else
  {
  echo "А меньше Б";
  }

Альтернативный синтаксис оператора if-elseif:

if ($a > $b):
  echo "А больше Б";
elseif ($a == $b):
  echo "А равно Б";
else:
  echo "А меньше Б";
endif;

Условный оператор ? возвращает одно из двух значений, разделенных двоеточием. Использование оператора ? может сделать более компактным текст программы. Например:

$text = ($a == $b) ? "А равно Б" : "А не равно Б";
echo $text;

Оператор выбора

Оператор выбора switch оценивает одно выражение и в зависимости от его значения выполняет один из нескольких блоков программы. Выражение в операторе switch чаще всего бывает простой переменной. Например:

switch ( $a )
  {
  case 1:
	echo "А равно 1";
	break;
  case 2:
	echo "А равно 2";
	break;
  case 3:
	echo "А равно 3";
	break;
  default:
	echo "А не равно ни 1, ни 2, ни 3";
  }

Альтернативный синтаксис оператора switch:

switch ( $a ):
  case 1:
	echo "А равно 1";
	break;
  case 2:
	echo "А равно 2";
	break;
  case 3:
	echo "А равно 3";
	break;
  default:
	echo "А не равно ни 1, ни 2, ни 3";
endswitch;

Цикл с параметром

Цикл с параметром for относится к наиболее старому и заслуженному виду цикла.

Пример 7

<html>
<head>
 <title>Цикл for</title>
</head>
<body>
<?php
for ($a = 11; $a <= 19; $a++)
  {
   echo "квадрат $a равен ".($a*$a)."<br>";
  }
?>
</body>
</html>

Альтернативный синтаксис оператора for:

for ($a = 11; $a <= 19; $a++):
   echo "квадрат $a равен ".($a*$a)."<br>";
endfor;

Циклы с условием

В языке PHP сущеcтвует два типа цикла с условием:

Оператор while оценивает значение условия и, если оно истинно, выполняет действия в фигурных скобках (тело цикла). Как только значение условия станет ложным, выполнение цикла прекращается.

Пример 8

<html>
<head>
 <title>Цикл while</title>
</head>
<body>
<?php
$a = 11;
while ( $a <= 19 )
  {
   echo "квадрат $a равен ".($a*$a)."<br>";
   $a++;
  }
?>
</body>
</html>

Замечание для продвинутых: сокращенная запись не сработает как ожидается:

while ( $a <= 19 )
  {
   echo "квадрат $a равен ".($a*($a++))."<br>"; // так не работает!!!
  }

Альтернативный синтаксис оператора while:

while ( $a <= 19 ):
   echo "квадрат $a равен ".($a*$a)."<br>";
   $a++;
endwhile;

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

Пример 9

<html>
<head>
 <title>Цикл do .. while</title>
</head>
<body>
<?php
$a = 11;
do {
   echo "квадрат $a равен ".($a*$a)."<br>";
   $a++;
   }
while ( $a <= 19 );
?>
</body>
</html>

В организации цикла могут участвовать еще два оператора: break (выход из цикла) и continue (переход на следующий шаг).


Размер шрифта:
А
А
А
Цвет сайта:
A
A
A
Изображение:
Вкл.
Выкл.
Обычная версия