🔥 Как избежать проблем с 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(), а проверяйте переменные строго!
👍11
  Какую из следующих функций PHP нужно использовать для получения текущего использования памяти?
  Anonymous Poll
    8%
    get_usage()
      
    5%
    get_peak_usage()
      
    80%
    memory_get_usage()
      
    12%
    memory_get_peak_usage()
      
    Какая из реализаций метода getName() не валидна в классе ChildCls?
  Anonymous Poll
    12%
    protected function getName(){}
      
    22%
    function getName(){}
      
    53%
    private function getName(){}
      
    28%
    public function getName(){}
      
    Какой метод позволяет рассчитать действует ли летнее время в конкретную дату и время?
  Anonymous Poll
    53%
    ISODate()
      
    13%
    savingTime()
      
    22%
    getOffset()
      
    16%
    getTranitions()
      
    Что произойдет при выполнении следующего кода?
  Anonymous Poll
    9%
    Trait Message
      
    67%
    Class Message
      
    23%
    Ошибка
      
    1%
    NULL
      
    👎3🔥1
  Какое значение по умолчанию принимает директива memory_limit в PHP?
  Anonymous Poll
    32%
    64M
      
    54%
    128M
      
    14%
    256M
      
    2%
    512M
      
    👎4
  👍1👎1
  Что будет выведено в результате работы скрипта
  Anonymous Poll
    23%
    Warning: Cannot bind an instance to a static closure
      
    35%
    Uncaught Error: Typed property class@anonymous::$bestLang must not be accessed before initialization
      
    34%
    string(3) "php"
      
    8%
    object(Closure)#3 (1) {...}
      
    1%
    Uncaught Error: Function name must be a string
      
    какая из следующих функций используется для получения значения предыдущего элемента массива
  Anonymous Poll
    8%
    last()
      
    17%
    previous()
      
    6%
    before()
      
    70%
    prev()
      
    Что выведет код?
  Anonymous Poll
    9%
    Uncaught Error: Call to undefined function bestLanguageIs()
      
    12%
    Uncaught Error: Call to undefined function php()
      
    53%
    php
      
    5%
    Uncaught Error: Closure object cannot be accessed as string
      
    24%
    Too few arguments to function {closure}(), 0 passed and exactly 1 expected
      
    👎4