?>
В этом случае мы получим следующий вывод:
10+5 $a+$b
Кроме обычных символов, строка может содержать специальные символы, которые могут быть неправильно интерпретированы. Например, нам надо добавить в строку кавычку:
$text = "Модель "Apple II"";
Данная запись будет ошибочна. Чтобы исправить ошибку, мы можем сочетать различные типы кавычек ('Модель "Apple II"' или "Модель 'Apple III'") или использовать слеш, чтобы ввести кавычку в строку:
$text = "Модель \"Apple II\"";
Тип resource (ресурсы)
Ресурс представляет специальную переменную, которая содержит ссылку на внешний ресурс. В качестве внешнего ресурса могут использоваться, например, файлы или подключения к базам данных. Ресурсы создаются и используются специальными функциями. Далее мы подробнее рассмотрим работу с файлами и подключения к базе данных.
Тип array (ассоциативные массивы)
Ассоциативный массив определяет набор элементов, каждый из которых представляет пару ключ => значение. Создадим массив из 4-х элементов:
<?php
$phones = array('iPhone', 'Samsung Galaxy S III', 'Nokia N9', 'Samsung ACE II'); echo $phones[1];
?>
Массив создается с помощью конструкции array(), в котором определяются элементов. Далее выводим второй элемент массива. Поскольку отсчет элементов в массиве начинается с нуля, то чтобы обратиться ко второму элементу, нам надо использовать выражение $phones[1]
70
Так как в массиве только четыре элемента, мы не можем использовать в качестве ключа число, большее чем 3, например, $phones[4].
1.7.4. Константы
Константы, как и переменные хранят определенное значение, только в отличие от переменных значение констант может быть установлено только один раз, и далее мы уже не можем его изменить. Например, определим числовую константу:
<?php define("NUMBER", 22); echo NUMBER;
$num = NUMBER; echo $num;
?>
Для определения константы используется оператор define, который имеет следующую форму: define(string $name, string $value, bool $case_sen=false).
Параметр $name передает название константы, а параметр $value - ее значение. Третий необязательный параметр принимает логическое значение true или false. Если значение равно false, то при использовании константы будет учитываться ее регистр, если true - регистр не учитывается. В нашем случае третий параметр не использован, поэтому он по умолчанию равен false.
После определения константы мы можем ее использовать также как и обычную переменную. Единственное исключение - мы не сможем изменить ее значение. Другое отличие от переменной - не надо использовать знак $. То есть выражение NUMBER=33; работать не будет.
Предопределенные константы
Кроме создаваемых программистом констант в PHP имеется еще несколько встроенных констант:
__FILE__: хранит полный путь и имя текущего файла
__LINE__: хранит текущий номер строки, которую обрабатывает интерпретатор
__DIR__: хранит каталог текущего файла
__FUNCTION__: название обрабатываемой функции
__CLASS__: название текущего класса
__METHOD__: название обрабатываемого метода
__NAMESPACE__: название текущего пространства имен
Например, выведем текущую выполняемую строку и название файла:
<?php
echo "Cтрока " . __LINE__ . " в файле " . __FILE__; ?>
71
Проверка существования константы Чтобы проверить, определена ли константа, мы можем использовать
функцию bool defined(string $name). Если константа $name определена, то функция будет возвращать значение true.
1.7.5.Получение и установка типа переменной
Спомощью специальных функций мы можем определить тип переменной:
is_integer($a): возвращает значение TRUE, если переменная $a хранит целое число
is_string($a): возвращает значение TRUE, если переменная $a хранит строку
is_double($a): возвращает значение TRUE, если переменная $a хранит действительное число
is_numeric($a): возвращает значение TRUE, если переменная $a представляет целое или действительное число или является строковым представлением числа.
Например:
$a = 10; $b = "10";
echo is_numeric($a); echo "<br>";
echo is_numeric($b);
Оба выражения is_numeric() возвратят TRUE, так как переменная $a представляет число, а переменная $b является строковым представлением числа
is_bool($a): возвращает значение TRUE, если переменная $a хранит значение TRUE или FALSE
is_scalar($a): возвращает значение TRUE, если переменная $a представляет один из простых типов: строку, целое число, действительное число, логическое значение.
is_null($a): возвращает значение TRUE, если переменная $a хранит значение NULL
is_array($a): возвращает значение TRUE, если переменная $a является массивом
is_object($a): возвращает значение TRUE, если переменная $a содержит ссылку на объект
gettype($a): возвращает тип переменной $a, например, integer (целое число), double (действительное число), string (строка), boolean (логическое значение), NULL, array (массив), object (объект) или unknown type. Например:
<?php $a = 10; $b = "10";
72
echo gettype($a); // integer echo "<br>";
echo gettype($b); // string ?>
Установка типа. Функция settype()
С помощью функции settype() можно установить для переменной определенный тип. Она принимает два параметра:settype("Переменная", "Тип"). В качестве первого параметра используется переменная, тип которой надо установить, а в качестве второго - строковое описание типа, которое возвращается функцией gettype().
Если удалось установить тип, то функция возвращает TRUE, если нет - то значение FALSE.
Например, установим для переменной целочисленный тип:
<?php $a = 10.7;
settype($a, "integer"); echo $a; // 10
?>
Поскольку переменная $a представляет действительное число 10.7, то его вполне можно преобразовать в целое число через отсечение дробной части. Поэтому в данном случае функция settype() возвратит TRUE.
1.7.6.Операции в PHP
ВPHP мы можем использовать различные операторы: арифметические, логические и т.д. Рассмотрим каждый тип операций.
Арифметические операции
+ (операция сложения) Например, $a + 5 - (операция вычитания) Например, $a - 5 * (умножение) Например, $a * 5
/ (деление) Например, $a / 5
% (получение остатка от деления) Например:
$a=12;
echo $a % 5; // равно 2
++ (инкремент/ увеличение значения на единицу) Например, ++$a
Важно понимать разницу между выражениями ++$a и $a++. Например:
73
$a=12;
$b=++$a; // $b равно 13 echo $b;
Здесь сначала к значению переменной $a прибавляется единица, а затем ее значение приравнивается переменной $b. Иначе было бы, если бы выражение выглядело так: $b=$a++;. Здесь сначала значение переменной $a приравнивалось переменной $b, а затем происходило увеличение значения переменной $a.
-- (декремент/ уменьшение значения на единицу)
Например, --$a. И также как и в случае с инкрементом, существуют два вида записи: --$a и $a--
Операции присваивания
=
Приравнивает переменной определенное значение: $a = 5 +=
Сложение с последующим присвоением результата. Например:
$a=12; $a += 5;
echo $a; // равно 17
Вычитание с последующим присвоением результата. Например:
$a=12; $a -= 5;
echo $a; // равно 7
*= Умножение с последующим присвоением результата:
$a=12; $a *= 5;
echo $a; // равно 60
/= Деление с последующим присвоением результата:
$a=12; $a /= 5;
echo $a; // равно 2.4
.=
Объединение строк с присвоением результата. Применяется к двум строкам. Если же переменные хранят не строки, а, к примеру, числа, то их значения преобразуются в строки и затем проводится операция:
74