#php
Вопрос:
Afaik, оператор null safe не работает с массивами, есть ли другой способ добиться того же эффекта с помощью цепочки массивов?
Например:
$array = [];
if (isset($array['a'])) {
if (isset($array['a']['b'])) {
// run
}
}
становится:
$array<null-safe-oprator>['a']<null-safe-operator>['b'];
Поиск в Гугле ничего не показывает по этой теме.
Комментарии:
1. Как вы думаете, почему это не работает с массивами?
2. @Бармар, я попробовал это
3. Для массивов такого ярлыка нет, но вы, безусловно, можете сделать что-то вроде
if( !isset($array['a'], $array['a']['b'])) throw new Exception("Missing value");
вложения несколькихif
блоков.4. Ты можешь просто сделать
if(isset($array['a']['b']))
.isset()
не выдает ошибку, если промежуточные уровни не установлены.5. В зависимости от варианта использования (это оператор if или присвоение переменной?) оператор объединения нулей может быть тем, что вы ищете. У вас может быть что-то вроде
$value = $array['a']['b'] ?? "fallback value";
.