Используйте переменные переменные с суперглобальными массивами

Интересно, если можно динамически читать суперглобальные переменные, я хотел бы сделать что-то вроде этого:

<?php

$n = 'GET';
$var = '$_'.$n.'[\'something\']'; // pour lire $_GET['something']
echo $var;

//Or

$n = 'POST';
$var = '$_'.$n.'[\'something\']'; // pour lire $_POST['something']
echo $var;

?>

Этот код работает не так, как я хочу, но я хотел бы знать, работает ли он в PHP?

2

Решение

Вы не можете использовать переменные переменные с суперглобалами, функциями или методами класса, а не с $this,

И цитата из руководства (это прямо перед комментариями пользователя, если вы ищете его):

Предупреждение:
Обратите внимание, что переменные переменные не могут использоваться с PHP Суперглобальные массивы внутри функции или же методы класса. Переменная $ this- также является специальной переменной, на которую нельзя ссылаться динамически.

4

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

Спасибо, это именно то, что я ищу

Но мы не можем использовать это в функции, пожалуйста?

$n = '_GET';

// don't work => Undefined variable: _GET
function f($n) {
echo ${$n}['a'];
}
f($n);

//work fine
echo ${$n}['a'];
0

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