В PHP любое значение можно интерпретировать как истину (true) или ложь (false), особенно в условиях (if, while и т. д.).
📌 Таблица истинных и ложных значений в PHP
| Значение | Истина (true) или ложь (false)? | Почему? |
true | ✅ true | Очевидно |
false | ❌ false | Очевидно |
1, -1, любое ненулевое число | ✅ true | В PHP любые ненулевые числа считаются true |
0 | ❌ false | Ноль считается ложным |
"0" (строка с нулем) | ❌ false | Исключение: строка "0" интерпретируется как false |
"" (пустая строка) | ❌ false | Пустая строка — ложь |
"Hello" (любая непустая строка) | ✅ true | Любая строка, кроме "0", считается true |
[] (пустой массив) | ❌ false | Пустой массив считается ложным |
["a", "b"] (непустой массив) | ✅ true | Любой непустой массив считается true |
null | ❌ false | null всегда ложное значение |
new stdClass() (объект) | ✅ true | Любой объект считается true |
fopen("file.txt", "r") (ресурс) | ✅ true | Открытый ресурс считается true |
🔹 Примеры использования в if
if (0) {
echo "Это истина";
} else {
echo "Это ложь"; // Выполнится этот блок
}
if ("0") {
echo "Это истина";
} else {
echo "Это ложь"; // Выполнится этот блок
}
if ("Hello") {
echo "Это истина"; // Выполнится этот блок
}
🔹 Как проверить, является ли значение ложным?
$var = 0;
if (!$var) {
echo "Переменная ложная"; // Выведет это
}
if ($var === false) {
echo "Переменная именно false"; // Не выполнится
}
💡 Разница между false и "ложными значениями"
false !== 0, false !== "", false !== null, но все они в if ведут себя как ложные.
2 minutes read Sodium Carbonate