Инструменты пользователя

Инструменты сайта


wiki:devel:request_vars

Доступ к переменным запроса

DokuWiki не запрещает доступ к $_POST, $_GET, $_REQUEST и $_SERVER. Однако мы настоятельно рекомендуем обращаться к ним не напрямую, а использовать наш Input класс. Глобальный экземпляр этого класса доступен везде как :&13:$INPUT.

Класс предоставляет вам типобезопасный доступ к переменным запроса, обеспечивает их правильную инициализацию и позволяет вам устанавливать значения по умолчанию.

Чтобы получить доступ к переменной в $_REQUEST, просто вызовите соответствующий метод в $INPUT. Например, для доступа к Integer в $_REQUEST['foo'], просто вызовите $INPUT->int('foo').

Если вы хотите получить доступ к $_GET или $_POST явно, вызовите методы для членов get и post $INPUT. Например $INPUT->get->int('foo') или $INPUT->post->int('foo').

Доступ к $_SERVER переменным всегда осуществляется через server член $INPUT: Например. $INPUT->server->str('REMOTE_USER').

Все функции доступа позволяют второму параметру задать значение по умолчанию. Это значение будет возвращено, если переменная не была установлена ​​или имела неправильный тип (например, ожидаемое целое число было массивом). Все функции доступа имеют разумные значения по умолчанию, соответствующие типу функции. Например int() returns 0, arr() возвращает пустой массив по умолчанию.

Третий параметр сообщает функции, следует ли возвращать параметр empty() по умолчанию. Этот третий параметр по умолчанию равенfalse.

Примеры

Вот несколько примеров, чтобы дать вам представление о том, как работает класс Input. Для получения подробной информации, пожалуйста, обратитесь к inc/input/input.php.

global $INPUT;
 
$_REQUEST = ['foo' => '3'];
 
var_dump($INPUT->int('foo')); // expect an integer
// int(3)
 
var_dump($INPUT->str('foo')); // expect a string
// string(1) "3"
 
var_dump($INPUT->int('bar')); // standard default
// int(0)
 
var_dump($INPUT->int('bar',42)); // setting an explicit default
// int(42)
 
var_dump($INPUT->bool('foo')); // we cast when reasonable
// bool(true)
 
var_dump($INPUT->arr('foo')); // we don't cast here
// array(0) {
// }
 
var_dump($INPUT->has('foo')); // is set
// bool(true)
 
 
$_POST = ['foo' => '0', 'bar' => ''];
 
// now accessing $_POST and trying the third parameter 
 
var_dump($INPUT->post->int('foo', -1));
// int(0)
 
var_dump($INPUT->post->int('bar', -1));
// int(-1)
 
var_dump($INPUT->post->int('foo', -1, true));
// int(-1)
 
var_dump($INPUT->post->int('bar', -1, true));
// int(-1)
 
 
$_SERVER 
 
var_dump($INPUT->server->str('REMOTE_USER'));
// string(8) "username"
Только авторизованные участники могут оставлять комментарии.
wiki/devel/request_vars.txt · Последнее изменение: 2025/01/03 18:21 — vladpolskiy