PHP: типы переменных

Предыдущая часть: “Обзор синтаксиса 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 могут принадлежать к одному из четырех типов области видимости:

  • локальные переменные;
  • параметры функции;
  • глобальные переменные;
  • статические переменные.

Именование переменных

Правила именования переменной:

  • Имена переменных должны начинаться с буквы или символа подчеркивания.
  • Имя переменной может состоять из цифр, букв, знаков подчеркивания, но вы не можете использовать такие символы, как + , — , % , ( , ) . & , и т.п.

Для переменных нет ограничений по размеру.

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен

Предыдущая статьяСтруктуры данных: «жадные» алгоритмы
Следующая статьяКак создать трекер расходов с SheetJS