📜 Heredoc/Nowdoc: гибкий синтаксис
Было: отступы внутри heredoc ломали содержимое.
Стало: можно выравнивать по коду:
$sql = <<
→ Теперь можно писать SQL; с отступом (но не табами), и они не попадут в строку.
📦 JSON: JsonException
Было: json_encode() возвращал false, ошибку — через json_last_error().
Стало (с флагом JSON_THROW_ON_ERROR):
try {
$data = json_encode($obj, JSON_THROW_ON_ERROR);
} catch (JsonException $e) {
// обработка
}
→ Чистая обработка ошибок без if (json_last_error()).
🔍 is_countable($var)
Зачем: безопасно проверить, можно ли вызвать count().
Было:
if (is_array($var) || $var instanceof Countable) { ... }
Стало:
if (is_countable($var)) { ... }
📎 array_key_first(), array_key_last()
Без пересоздания массива:
$first = array_key_first($assoc); // 'a'
$last = array_key_last($assoc); // 'c'
// вместо reset()+key() или array_keys()[0]
continue в switch → continue 2 (иначе Warning),fread()/fwrite() больше не прерываются EINTR,mbstring: strict detection включена по умолчанию → ломает mb_strlen("рус") на некоторых системах.