Метод exists
Метод exists класса Arr проверяет существование ключа в массиве или объекте. Первым параметром передаётся массив или объект для проверки, вторым - ключ или путь к ключу через точку для вложенных структур. Метод возвращает true, если ключ существует и его значение не равно null.
Синтаксис
<?php
Arr::exists($array, $key);
?>
Пример
Давайте проверим существование ключа 'name' в простом массиве:
<?php
use Illuminate\Support\Arr;
$arr = ['name' => 'John', 'age' => 30];
$res = Arr::exists($arr, 'name');
var_dump($res);
?>
Результат выполнения кода:
"bool(true)"
Пример
Проверим существование ключа, которого нет в массиве:
<?php
use Illuminate\Support\Arr;
$arr = ['name' => 'John', 'age' => 30];
$res = Arr::exists($arr, 'email');
var_dump($res);
?>
Результат выполнения кода:
"bool(false)"
Пример
Метод возвращает false для ключей со значением null:
<?php
use Illuminate\Support\Arr;
$arr = ['name' => 'John', 'age' => null];
$res = Arr::exists($arr, 'age');
var_dump($res);
?>
Результат выполнения кода:
"bool(false)"
Пример
Проверим существование вложенного ключа с использованием точечной нотации:
<?php
use Illuminate\Support\Arr;
$arr = [
'user' => [
'profile' => [
'name' => 'John'
]
]
];
$res = Arr::exists($arr, 'user.profile.name');
var_dump($res);
?>
Результат выполнения кода:
"bool(true)"
Пример
Метод также работает с объектами и коллекциями:
<?php
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
$collection = new Collection(['name' => 'John', 'age' => 30]);
$res = Arr::exists($collection, 'name');
var_dump($res);
?>
Результат выполнения кода:
"bool(true)"
Пример
Используем метод в условии для проверки наличия ключа перед обращением:
<?php
use Illuminate\Support\Arr;
$arr = ['name' => 'John', 'age' => 30];
if (Arr::exists($arr, 'name')) {
echo $arr['name'];
} else {
echo 'Key not found';
}
?>
Результат выполнения кода:
"John"