Цель состоит в том, чтобы получить некоторые точные значения $_GET
в свойстве класса, а:
- удаления любого ключа не нужный
- дефолтом значения, когда ключи не определены
с помощью этого кода в файле /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's man page for filter_input_array() около третьего параметра (истина по умолчанию):
Добавить недостающие ключи в NULL для возвращаемого значения.
Я хотел бы ожидать, что вызов domain.com/request.php
дало бы дефолт [так] массив с целым числом 30 в качестве значения menu
«ы. Однако, когда нет $_GET
не определены (то есть, когда нет никакого символа после знака вопроса в URL) filter_input_array возвращает null
поэтому var_dump это:
объект (запрос) # 1 (1) {[ "Получить «:» запрос ": частная] => NULL}
однако когда $_GET
определен (то есть, имеющий, по меньшей мере, один символ после знака вопроса в URL), такие, как вызов domain.com/request.php?a
даст:
объект (запрос) # 1 (1) {[ "Получить": "запрос": частная] => Array (1) {[ "Меню"] => NULL}}
Как я могу заставить filter_input_array()
, чтобы вернуть массив, чтобы значения по умолчанию были построены, даже если я вызываю URL-адрес без значения $ _GET, определенного как index.php
?
Кажется возможным переписать запрос из .htaccess, чтобы я мог имитировать значение $ _GET, если оно отсутствует, но оно кажется странным.