Обернуть суперглобальный $ _GET внутри свойства класса

Цель состоит в том, чтобы получить некоторые точные значения $_GET в свойстве класса пока:

  1. удаление любого ключа не желательно
  2. значения по умолчанию, когда ключи не определены

С этим кодом в файле /request.php:

$req = new request();
var_dump($req);
class request {
private $Get;
function __construct() {
$this->Get = filter_input_array(INPUT_GET,array (
'menu'=>array (
'filter'=>FILTER_VALIDATE_INT,
'options'=>array (
'default'=>30,
),
),
));
}
}

от Справочная страница php для filter_input_array () о третьем параметре (по умолчанию true):

Добавьте отсутствующие ключи как NULL к возвращаемому значению.

Я ожидаю, что вызов domain.com/request.php даст массив по умолчанию [sic] с целым числом 30 как menuценность. Однако, когда нет $_GET определены (то есть, когда в вопросе нет знака после вопросительного знака), filter_input_array возвращает null следовательно, var_dump это:

object (request) # 1 (1) {[«Get»: «request»: private] => NULL}

Однако когда $_GET определяется (то есть, имея хотя бы один символ после вопросительного знака в URL), такой как вызов domain.com/request.php?a даст:

object (request) # 1 (1) {[«Get»: «request»: private] => array (1) {[«menu»] => NULL}}

Как я могу заставить filter_input_array() вернуть массив, чтобы значения по умолчанию были построены, даже если я вызываю URL без значения $ _GET, определенного как index.php?

Кажется возможным переписать запрос из .htaccess, чтобы я мог имитировать определенное значение $ _GET, если его нет, но это кажется странным.

1

Решение

Почему бы не использовать другой простой способ?

var_dump(filter_var_array($_GET, array(
'key' => FILTER_DEFAULT,
), true));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]