Типы данных в PHP: int, float, string, bool, array, null и object простыми словами
Типы данных в PHP определяют, какие значения может хранить переменная и какие операции с ними безопасно выполнять. PHP считается динамически типизированным языком: переменная не объявляется заранее как int или string, а получает тип в момент присваивания значения.
Эта статья отвечает на популярный запрос «типы данных в PHP» и поможет новичкам понять, почему строка '10' иногда ведёт себя как число, чем null отличается от пустой строки и как правильно проверять типы в PHP 8+.
Основные типы данных в PHP
В PHP есть несколько базовых типов, с которыми вы будете встречаться постоянно:
- int — целые числа;
- float — числа с плавающей точкой;
- string — строки;
- bool — логический тип
trueилиfalse; - array — массивы;
- null — отсутствие значения;
- object — объекты классов.
<?php
$age = 25; // int
$price = 199.99; // float
$name = 'Анна'; // string
$isActive = true; // bool
$roles = ['admin', 'user']; // array
$deletedAt = null; // null
Как узнать тип переменной
Для отладки удобно использовать get_debug_type(). Она появилась в PHP 8 и возвращает более понятные названия типов, чем старый gettype().
<?php
$value = '123';
echo get_debug_type($value); // string
$value = 123;
echo get_debug_type($value); // int
Для проверок в коде используйте специальные функции:
<?php
$value = 42;
var_dump(is_int($value)); // true
var_dump(is_string($value)); // false
var_dump(is_numeric($value)); // true
Совет: не стройте бизнес-логику на сравнении результата gettype() со строкой. Для этого лучше подходят is_int(), is_array(), is_null() и похожие функции.
int и float: числа в PHP
int используется для целых чисел: количество товаров, возраст, идентификатор пользователя. float — для дробных значений: цена, рейтинг, процент.
<?php
$count = 3;
$price = 1499.50;
$total = $count * $price;
echo $total; // 4498.5
Важно помнить: float не всегда идеально точен из-за особенностей хранения дробных чисел в компьютере.
<?php
$result = 0.1 + 0.2;
var_dump($result); // float(0.30000000000000004) в некоторых случаях
Для денежных расчётов часто используют целые числа в копейках/центах или специальные библиотеки. Например, 199 рублей 50 копеек можно хранить как 19950.
string: строки и числа в строках
Строки в PHP можно записывать в одинарных или двойных кавычках. В двойных кавычках переменные подставляются автоматически.
<?php
$name = 'Иван';
echo 'Привет, $name'; // Привет, $name
echo "Привет, $name"; // Привет, Иван
Частая ситуация: данные из формы приходят строками, даже если пользователь ввёл число.
<?php
$ageFromForm = '18';
var_dump(is_string($ageFromForm)); // true
var_dump(is_numeric($ageFromForm)); // true
Если вам нужно именно число, преобразуйте значение явно:
<?php
$age = (int) '18';
$price = (float) '99.90';
var_dump($age); // int(18)
var_dump($price); // float(99.9)
bool: логические значения
Тип bool принимает только два значения: true или false. Он часто используется в условиях.
<?php
$isAdmin = false;
if ($isAdmin) {
echo 'Доступ разрешён';
} else {
echo 'Недостаточно прав';
}
При неявном преобразовании к bool PHP считает ложными значения false, 0, 0.0, пустую строку '', строку '0', пустой массив и null.
<?php
var_dump((bool) ''); // false
var_dump((bool) '0'); // false
var_dump((bool) '1'); // true
var_dump((bool) []); // false
Рекомендация: если проверяете конкретное значение, используйте строгое сравнение ===, чтобы избежать неожиданных результатов.
array: массивы в PHP
Массив в PHP может быть списком или ассоциативной структурой «ключ — значение».
<?php
$numbers = [10, 20, 30];
$user = [
'id' => 7,
'name' => 'Мария',
'email' => 'maria@example.com',
];
echo $numbers[0]; // 10
echo $user['email']; // maria@example.com
Перед обращением к ключу проверяйте его существование, особенно если данные пришли от пользователя или из API.
<?php
$user = ['name' => 'Олег'];
$email = $user['email'] ?? 'email не указан';
echo $email;
null: отсутствие значения
null означает, что значения нет. Это не то же самое, что пустая строка, ноль или пустой массив.
<?php
$middleName = null;
if ($middleName === null) {
echo 'Отчество не указано';
}
Используйте null, когда значение действительно неизвестно или отсутствует. Например, дата удаления записи может быть null, пока запись активна.
object: объекты
Объекты появляются, когда вы работаете с классами. Даже в основах PHP полезно понимать, что объект — это значение со свойствами и методами.
<?php
class User
{
public string $name;
public function __construct(string $name)
{
$this->name = $name;
}
}
$user = new User('Сергей');
echo get_debug_type($user); // User
echo $user->name; // Сергей
Явное преобразование типов
В PHP можно явно привести значение к нужному типу. Это называется casting.
<?php
$value = '123abc';
var_dump((int) $value); // int(123)
var_dump((string) 500); // string(3) "500"
var_dump((bool) 1); // bool(true)
var_dump((array) 'text'); // array(1) { [0]=> string(4) "text" }
Будьте осторожны: преобразование не всегда работает так, как ожидает новичок. Например, строка '123abc' при приведении к int превращается в 123. Поэтому пользовательский ввод лучше валидировать, а не просто приводить к типу.
Типы параметров и возвращаемых значений
В современном PHP стоит указывать типы в функциях. Это делает код понятнее и помогает быстрее находить ошибки.
<?php
function calculateTotal(int $count, float $price): float
{
return $count * $price;
}
echo calculateTotal(2, 499.90);
Если вы хотите системно прокачать основы PHP, работу с типами, формами, базой данных и реальными проектами, посмотрите курс «PHP и MySQL с Нуля до Гуру 3.0» — практический путь от первых скриптов до полноценного сайта.
Частые ошибки при работе с типами в PHP
- Полагаться на неявное преобразование. Лучше явно приводить и валидировать данные.
- Сравнивать всё через
==. Для точной проверки используйте===. - Путать
null,0и пустую строку. Это разные значения с разным смыслом. - Считать данные из формы числами. Обычно они приходят строками.
- Использовать
floatдля денег без понимания точности. Для финансов лучше хранить минимальные единицы целым числом.
Мини-шпаргалка
<?php
is_int($value); // целое число
is_float($value); // дробное число
is_string($value); // строка
is_bool($value); // true или false
is_array($value); // массив
is_null($value); // null
is_object($value); // объект
get_debug_type($value); // удобный вывод типа для отладки
Итоги
Типы данных в PHP — это фундамент, который влияет на условия, функции, обработку форм, работу с массивами и базами данных. Для надёжного кода проверяйте типы через is_* функции, используйте строгое сравнение ===, аккуратно приводите данные и не забывайте, что ввод пользователя почти всегда требует проверки.
-
Создано 04.11.2026 17:00:45
-
Михаил Русаков

Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.