`null` убивает не в коде. Он убивает в проверках, которые забыли написать.
C. A. R. Hoare в 1965-м добавил `null` как “удобную” пустоту. Потом эта пустота стала стандартом. И дальше понеслось: `if (!$user)`, `meta_value = NULL`, `post_parent = 0`, `get_option()` вернул не то, плагин рухнул, прод лёг.
В WordPress это особенно мерзко. Потому что `null` не существует один. Он маскируется под:
- пустую строку
- `false`
- `0`
- пустой массив
- отсутствующий ключ
- битый объект
А потом начинается цирк:
1. плагин сохраняет `null` вместо `''`
2. другой плагин ждёт строку
3. третий делает `===` и ничего не находит
4. четвертый вешает WooCommerce checkout на валидаторе
5. владелец сайта получает “критическую ошибку”
Мораль без лирики: `null` надо не любить, а контролировать.
На границе системы — нормализовать.
Внутри — явно проверять тип.
В БД — хранить предсказуемое значение, а не философию пустоты. 🪦
Если ваш код “иногда работает”, проверьте, не кормите ли вы его `null`.
WP Surgery
@WpSurgeryPro
`null` убивает не в коде. Он убивает в проверках, которые забыли написать.
Этот пост опубликован в Telegram-канале WP Surgery. Подписаться можно по ссылке: @WpSurgeryPro.