Какая запись вернее: $page = @$_GET['page'] или $page = isset($_GET["page"])? $_GET["page"]: null?

Подскажите пожалуйста какая из этих записей лучше и почему?
$page1 = @$_GET['page'];
$page2 = isset($_GET["page"]) ? $_GET["page"] : null;
  • Вопрос задан
  • 838 просмотров
Решения вопроса 2
mashletov
@mashletov
Math.random()
  • PHP 5 isset($_GET["page"]) ? $_GET["page"] : null;
  • PHP 7 $_GET['page'] ?? null;
Ответ написан
Комментировать
Minifets
@Minifets
Hello world!!!
Можно еще так, для php7.
$page1 = $_GET['page'] ?? null;
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
JimmDiGreez
@JimmDiGreez
Full-stack Developer
Тогда уж вернее empty($_GET['page']).
Ответ написан
@fedornabilkin
Первая запись подавляет вывод ошибок (нотисов) и считается плохим тоном.
Вторая запись проверяет существование ключа page в массиве $_GET и при наличии присваивает переменной, в противном случае null.
Данные из супермассивов необходимо предварительно дезинфецировать.
Ответ написан
@Yan-s
Если есть вариант без @, то он вернее чем с @
Ответ написан
Комментировать
@alexalexes
В случае с GET и POST массивами, правильнее всего прощупать наличие ключа.
Если есть ключ, значит параметр был отправлен клиентом и его можно обработать.
Если ключа нет в массиве, то не стоит что-то извлекать $_GET["page"], проверять isset(), empty() и т.д.
$page = array_key_exists('page', $_GET) ? $_GET["page"] : null;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы