Я работаю над веб-библиотекой для личного использования. Я думал, что буду умным и использовать переменные переменные, чтобы моя библиотека легко поддерживала все методы запросов.PHP Variable Variable Request Method
Я имел:
$request = '_' . $_SERVER['REQUEST_METHOD'];
$request = $$request;
Но я получаю:
Undefined переменной: _POST
Отпечатано в мой журнал ошибок PHP.
Я был просто любопытно, будет ли испорчен моя идея conceptially, как и почему логика не работает, когда следующий делает:
$_a = 'b';
$b = '_a';
$c = $$b;
Edit:
Следующая делает работу :
$request = $_SERVER['REQUEST_METHOD'] === 'POST' ? $_POST : $_GET;
Дубликат: Superglobals can't be accessed via variable variables in a function?
Чтобы исправить я сделал:
$request = $GLOBALS['_' . $_SERVER['REQUEST_METHOD']];
Вы также можете использовать свой исходный код за пределами функции или класса.
Почему вы используете код ниндзя? – VeeeneX
Возможный дубликат [Суперглавы не могут быть доступны через переменные переменные в функции?] (Http: //stackoverflow.com/q/8071118/1503018) – sectus
@VeeeneX Я использовал этот код для поддержки нескольких методов запроса. Вначале GET и POST я не знаю, что это будет работать для PATCH/PUT/DELETE и т. д. Примечание. мой последний ответ, который, вероятно, лучший способ сделать это – csga5000