Типы данных в PHP
Переменная может хранить данные самых разных видов, и то, что можно делать со значением, зависит от его типа. PHP работает с такими типами: String, Integer, Float (также известен как double), Boolean, Array, Object, NULL, Resource.
Строка в PHP
Строки хранят текст: последовательность символов, например «Привет, мир!». Заключите текст в одинарные или двойные кавычки, и PHP будет считать его строкой.
Пример строки
Эти две переменные содержат один и тот же текст, записанный один раз в двойных кавычках, а другой — в одинарных:
Вывод: PHP-скрипт
<?php
$x = "Привет, мир!";
$y = 'Привет, мир!';
echo $x;
echo "<br>";
echo $y;
?>
Целое число в PHP
Целые числа не имеют дробной части. В 32-битных системах они лежат в диапазоне от -2,147,483,648 до 2,147,483,647. При записи целого числа нужна хотя бы одна цифра и не должно быть десятичной точки, а значение может быть положительным или отрицательным. Его можно записать в десятичной (основание 10), шестнадцатеричной (основание 16, начинается с 0x) или восьмеричной (основание 8, начинается с 0) форме.
Чтобы увидеть тип значения вместе с самим значением, используйте var_dump().
Пример целого числа
Здесь var_dump() подтверждает, что $x — целое число:
Вывод: PHP-скрипт
<?php
$x = 5985;
var_dump($x);
?>
Число с плавающей точкой в PHP
Числа с плавающей точкой (float — сокращение от floating point) содержат десятичную точку или записываются в экспоненциальной форме. И снова var_dump() может показать и тип, и значение.
Пример числа с плавающей точкой
Здесь var_dump() подтверждает, что $x — число с плавающей точкой:
Вывод: PHP-скрипт
<?php
$x = 10.365;
var_dump($x);
?>
Логический тип в PHP
У логического типа всего два возможных значения: TRUE и FALSE. Чаще всего вы будете встречать их в условиях, где код решает, что делать дальше.
Логические значения
Здесь каждое логическое значение получает своя переменная:
<?php
$x = true;
$y = false;
?>
Массив в PHP
Благодаря массиву одна переменная может хранить сразу несколько значений. Как и для других типов, var_dump() показывает тип и содержимое.
Пример массива
В выводе указаны длина массива и каждый элемент с его индексом, типом и значением:
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
var_dump($cars);
?>
Объект в PHP
Объектно-ориентированное программирование строится на двух идеях: классах и объектах. Представьте класс как шаблон, а объект как один экземпляр, созданный по нему. Каждый объект получает свойства и поведение, определённые в классе, но у каждого могут быть собственные значения свойств.
Если добавить в класс функцию __construct(), PHP будет сам вызывать её каждый раз, когда вы создаёте объект этого класса.
Пример объекта
Класс Car служит здесь шаблоном для трёх объектов, у каждого из которых свой цвет и своя модель:
Вывод: PHP-скрипт
<?php
class Car {
public $color;
public $model;
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
public function message() {
return "Моя машина — " . $this->color . " " . $this->model . "!";
}
}
$myCar = new Car("red", "Volvo");
echo $myCar->message();
echo "<br>";
$myCar = new Car("green", "BMW");
echo $myCar->message();
echo "<br>";
$myCar = new Car("blue", "Toyota");
echo $myCar->message();
?>
Значение NULL в PHP
Тип данных Null необычен тем, что у него всего одно возможное значение: NULL. Оно означает, что переменной не присвоено значение. PHP автоматически даёт это значение переменной, созданной без значения, и вы также можете установить его сами, чтобы очистить переменную.
Пример NULL
$x сначала содержит строку, а затем очищается, поэтому var_dump() сообщает NULL:
Вывод: PHP-скрипт
<?php
$x = "Привет, мир!";
$x = null;
var_dump($x);
?>
Изменение типа данных
Тип переменной в PHP следует за её значением. Присвойте целое число, и переменная будет целочисленной; присвойте позже той же переменной строку, и она станет строкой. Чтобы изменить тип самостоятельно, используйте возможность casting в PHP или функцию settype().
Приведение типа для изменения типа
Здесь $x сначала является целым числом, а приведение превращает её в строку:
Вывод: PHP-скрипт
<?php
$x = 5;
$x = (string) $x;
var_dump($x);
?>