🔥 Как избежать проблем с isset() и empty() в PHP?
Сегодня разберём две часто используемые функции в PHP — isset() и empty(), которые могут вести себя не так, как вы ожидаете.
📌 isset()
Функция isset($var) проверяет, была ли переменная установлена и не равна ли она null.
❗️ Пример подвоха:
$var = null;
var_dump(isset($var)); // false
Если переменной вообще нет в коде — тоже будет false.
📌 empty()
Функция empty($var) проверяет, считается ли переменная "пустой".
❗️ Пустыми считаются:
- "" (пустая строка)
- 0 (число)
- "0" (строка с нулём)
- null
- false
- [] (пустой массив)
Пример:
$var = "0";
var_dump(empty($var)); // true, хотя строка не null
⚠️ Ошибка: проверка if (!isset($var) || empty($var)) может привести к неожиданному результату.
🔥 Лучший подход?
Используйте строгие проверки:
if ($var === null) { /* Переменная null */ }
if ($var === '') { /* Пустая строка */ }
if ($var === 0) { /* Число 0 */ }
Если проверяете массивы, то:
if (count($var) === 0) { /* Массив пуст */ }
Вывод: не злоупотребляйте isset() и empty(), а проверяйте переменные строго!
Сегодня разберём две часто используемые функции в PHP — isset() и empty(), которые могут вести себя не так, как вы ожидаете.
📌 isset()
Функция isset($var) проверяет, была ли переменная установлена и не равна ли она null.
❗️ Пример подвоха:
$var = null;
var_dump(isset($var)); // false
Если переменной вообще нет в коде — тоже будет false.
📌 empty()
Функция empty($var) проверяет, считается ли переменная "пустой".
❗️ Пустыми считаются:
- "" (пустая строка)
- 0 (число)
- "0" (строка с нулём)
- null
- false
- [] (пустой массив)
Пример:
$var = "0";
var_dump(empty($var)); // true, хотя строка не null
⚠️ Ошибка: проверка if (!isset($var) || empty($var)) может привести к неожиданному результату.
🔥 Лучший подход?
Используйте строгие проверки:
if ($var === null) { /* Переменная null */ }
if ($var === '') { /* Пустая строка */ }
if ($var === 0) { /* Число 0 */ }
Если проверяете массивы, то:
if (count($var) === 0) { /* Массив пуст */ }
Вывод: не злоупотребляйте isset() и empty(), а проверяйте переменные строго!
Какую из следующих функций PHP нужно использовать для получения текущего использования памяти?
Anonymous Poll
8%
get_usage()
4%
get_peak_usage()
82%
memory_get_usage()
12%
memory_get_peak_usage()
Какая из реализаций метода getName() не валидна в классе ChildCls?
Anonymous Poll
12%
protected function getName(){}
22%
function getName(){}
53%
private function getName(){}
29%
public function getName(){}
Какой метод позволяет рассчитать действует ли летнее время в конкретную дату и время?
Anonymous Poll
51%
ISODate()
13%
savingTime()
23%
getOffset()
17%
getTranitions()
Что произойдет при выполнении следующего кода?
Anonymous Poll
8%
Trait Message
68%
Class Message
22%
Ошибка
1%
NULL
Какое значение по умолчанию принимает директива memory_limit в PHP?
Anonymous Poll
31%
64M
54%
128M
14%
256M
2%
512M
Что будет выведено в результате работы скрипта
Anonymous Poll
23%
Warning: Cannot bind an instance to a static closure
36%
Uncaught Error: Typed property class@anonymous::$bestLang must not be accessed before initialization
33%
string(3) "php"
7%
object(Closure)#3 (1) {...}
1%
Uncaught Error: Function name must be a string
какая из следующих функций используется для получения значения предыдущего элемента массива
Anonymous Poll
8%
last()
17%
previous()
6%
before()
71%
prev()