Предыдущая часть: “Обзор синтаксиса PHP”
Основным способом хранения информации внутри PHP-программы является использование переменных.
Вот наиболее важные сведения о переменных в PHP:
- Все переменные обозначаются открывающим знаком доллара (
$
). - Значение переменной — это значение ее последнего присвоения.
- Переменные присваиваются с помощью оператора
=
, при этом слева указывается переменная, а справа — выражение, являющееся результатом. - Переменные могут, но не обязательно должны быть объявлены перед присвоением.
- Переменные в PHP не имеют собственных типов: заранее неизвестно, будет ли переменная использоваться для хранения числа или строки символов.
- Переменные, используемые до присвоения, имеют значения по умолчанию.
- PHP хорошо справляется с автоматическим преобразованием типов из одного в другой, когда это необходимо.
- Переменные PHP являются Perl-подобными.
В PHP используются восемь типов данных для создания переменных:
- Целые — числа без десятичной точки, например:
4195
. - Числа двойной точности — числа с плавающей запятой, например:
3.14159
или49.1
. - Булевы — имеющие только два возможных значения:
true
илиfalse
. - NULL (информационный нуль) — специальный тип, который имеет только одно значение:
NULL
(нулевое). - Строки — последовательности символов, например:
PHP supports string operations
- Массивы — именованные и индексированные коллекции различных значений.
- Объекты — экземпляры определенных программистом классов, которые могут упаковывать как различные типы значений, так и функции, специфичные для данного класса.
- Ресурсы — специальные переменные, которые содержат ссылки на внешние ресурсы (например, соединения с базой данных).
Первые пять типов являются простыми, а следующие два (массивы и объекты) — составными. Составные типы, в отличие от простых, могут упаковывать различные произвольные значения произвольного типа данных.
Рассмотрим пока простые типы данных. Массивы и объекты будут описаны отдельно.
Целые числа
Это числа без десятичной точки, например, 4195
. Это самый простой тип данных, соответствующий простым целым числам, как положительным, так и отрицательным. Целые числа можно присваивать переменным или использовать в выражениях, например, так:
$int_var = 12345;
$another_int = -12345 + 12345;
Целое число может быть в десятичном, восьмеричном и шестнадцатеричном формате. Десятичный формат используется по умолчанию, восьмеричные целые числа помечаются начальным 0, а шестнадцатеричные числа — начальным 0x.
Для большинства распространенных платформ наибольшее целое число равно 2³¹-1 (или 2 147 483 647), а наименьшее (наибольшее отрицательное) целое число равно — (2³¹-1) (или -2,147,483,647).
Числа двойной точности
Примерами такого типа данных являются 3.14159 или 49.1. По умолчанию числа двойной точности записываются с минимальным количеством необходимых знаков после запятой. Например:
<?php
$many = 2.2888800;
$many_2 = 2.2111200;
$few = $many + $many_2;
print("$many + $many_2 = $few <br>");
?>
Такая запись приводит к следующему выводу в браузере:
2.28888 + 2.21112 = 4.5
Булевы данные
Данные этого типа имеют только одно из двух возможных значений: истинное или ложное. PHP предоставляет пару констант, специально предназначенных для использования в качестве булевых значений: TRUE
(истинное) и FALSE
(ложное), которые можно использовать следующим образом:
if (TRUE)
print("This will always print<br>");
else
print("This will never print<br>");
Интерпретация других типов данных как булевых
Вот правила для определения истинности любого значения, не относящегося к булевому типу.
- Если значение является числом: оно ложно, если точно равно нулю, и истинно в противном случае.
- Если значение является строкой: оно ложно, если строка пуста (содержит ноль символов) или является строкой “0”, и истинно в противном случае.
- Значения типа NULL всегда ложны.
- Если значение является массивом: оно ложно, если не содержит других значений, и истинно в противном случае. Для объекта содержать значение означает иметь переменную-член, которой присвоено значение.
- Допустимые ресурсы истинны (хотя некоторые функции, возвращающие ресурсы в случае успеха, возвращают FALSE в случае неудачи).
- Числа двойной точности не используются в качестве булевых значений.
Каждая из следующих переменных имеет истинное значение, встроенное в ее имя, когда она используется в булевом контексте.
$true_num = 3 + 0.14159;
$true_str = "Tried and true"
$true_array[49] = "An array element";
$false_array = array();
$false_null = NULL;
$false_num = 999 - 999;
$false_str = "";
NULL
NULL — это особый тип, который имеет только одно значение: NULL
. Чтобы присвоить переменной значение NULL
, просто определите ее следующим образом:
$my_var = NULL;
Специальная константа NULL
по соглашению пишется с заглавной буквы, но на самом деле она не чувствительна к регистру — с таким же успехом вы могли бы ввести:
$my_var = null;
Переменная, которой присвоено значение NULL
, обладает следующими свойствами:
- оценивается как
FALSE
в булевом контексте. - возвращает
FALSE
при проверке с помощью функцииIsSet()
.
Строки
Строки представляют собой последовательности символов, например “PHP поддерживает операции со строками”. Ниже приведены примеры допустимых строк:
$string_1 = "Строка в двойных кавычках";
$string_2 = 'Более длинная строка в одинарных кавычках';
$string_39 = "Строка, содержащая тридцать девять символов";
$string_0 = ""; // строка с нулевым количеством символов
Строки в одинарных кавычках обрабатываются почти буквально, тогда как строки в двойных кавычках заменяют переменные их значениями, а также особым образом интерпретируют определенные последовательности символов.
<?php
$variable = "name";
$literally = 'My $variable will not print!';
print($literally);
print "<br>";
$literally = "My $variable will print!";
print($literally);
?>
Это приведет к следующему результату:
My $variable will not print!
My name will print
Искусственных ограничений на длину строк не существует — в пределах доступной памяти вы должны иметь возможность создавать произвольно длинные строки.
Строки, разделенные двойными кавычками (как в “this”), предварительно обрабатываются PHP двумя следующими способами −
- Определенные последовательности символов, начинающиеся с обратной косой черты (
\
), заменяются специальными символами - Имена переменных (начинающиеся с
$
) заменяются строковыми представлениями их значений.
Замена экранирующих последовательностей:
\n
заменяется символом новой строки;\r
заменяется символом возврата каретки;\t
заменяется символом табуляции;\$
заменяется знаком доллара ($
);\”
заменяется одинарными двойными кавычками (“
);\\\
заменяется одинарной обратной косой чертой (\
).
Here Document
Вы можете присвоить несколько строк одной строковой переменной, используя here document:
<?php
$channel =<<<_XML_
<channel>
<title>Что на ужин?</title>
<link>http://menu.example.com/ </link>
<description>Выберите, что съесть вечером.</description>
</channel>
_XML_;
echo <<<END
Здесь используется синтаксис "here document" для вывода
нескольких строк с интерполяцией переменной. Обратите внимание на
то, что терминатор документа here должен находиться на строке с
точкой с запятой. Никаких лишних пробелов!
END;
print $channel;
?>
Это приведет к следующему результату:
Здесь используется синтаксис "here document" для вывода
нескольких строк с интерполяцией переменной. Обратите внимание на то, что терминатор документа here должен находиться на
строке с точкой с запятой. Никаких лишних пробелов!
<channel>
<title>Что на ужин?<title>
<link>http://menu.example.com/<link>
<description>Выберите, что съесть вечером</description>
Область видимости переменной
Область видимости может быть определена как диапазон доступности переменной для программы, в которой она объявлена. Переменные PHP могут принадлежать к одному из четырех типов области видимости:
- локальные переменные;
- параметры функции;
- глобальные переменные;
- статические переменные.
Именование переменных
Правила именования переменной:
- Имена переменных должны начинаться с буквы или символа подчеркивания.
- Имя переменной может состоять из цифр, букв, знаков подчеркивания, но вы не можете использовать такие символы, как + , — , % , ( , ) . & , и т.п.
Для переменных нет ограничений по размеру.
Читайте также:
Читайте нас в Telegram, VK и Яндекс.Дзен