Метод has класса ParameterBag
Метод has класса ParameterBag
проверяет, существует ли параметр с указанным
ключом в контейнере. Первым параметром
передаётся имя ключа. Если параметр найден,
метод возвращает true, иначе - false.
Класс ParameterBag хранит параметры
в виде ассоциативного массива и используется
во многих компонентах Symfony, например
в Request для хранения атрибутов,
query-параметров и параметров запроса.
Синтаксис
public function has(string $key): bool
Пример
Давайте создадим объект ParameterBag
с несколькими параметрами и проверим наличие
одного из них:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ParameterBag;
class ArticleController extends AbstractController
{
public function index(): Response
{
$bag = new ParameterBag([
'name' => 'abcde',
'age' => 25,
'active' => true,
]);
$res = $bag->has('name');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
true
Пример
Давайте проверим наличие параметра, которого нет в контейнере:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ParameterBag;
class ArticleController extends AbstractController
{
public function index(): Response
{
$bag = new ParameterBag([
'name' => 'abcde',
'age' => 25,
]);
$res = $bag->has('email');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
false
Пример
Давайте используем метод has вместе
с методом get, чтобы безопасно получить
значение параметра:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ParameterBag;
class ArticleController extends AbstractController
{
public function index(): Response
{
$bag = new ParameterBag([
'name' => 'abcde',
'age' => 25,
]);
if ($bag->has('name')) {
$res = $bag->get('name');
} else {
$res = 'not found';
}
return new Response($res);
}
}
?>
Результат выполнения кода:
"abcde"
Смотрите также
-
класс
ParameterBag,
который хранит параметры в виде массива -
метод
get,
который возвращает значение параметра по ключу -
метод
all,
который возвращает все параметры контейнера -
метод
set,
который устанавливает значение параметра