Я создаю небольшой абстрактный класс, который должен упростить определенные задачи.
Например: $var = class::get('id'); будет запускать проверку наличия идентификатора указателя в $_GET, возвращая строку или массив в соответствии с параметрами. Это также должно работать для сообщений и запросов и многое другое.
Я делаю это так, как есть функция для всех суперглобалов. Я использую get в качестве примера:
Функция get получает указатель в качестве параметра, вызывает функцию fetchdata и использует указатель и "$_GET" в качестве параметров.
Предполагается, что fetchdata просто слепо использует полученную строку как суперглобальную и указывает на нее другим параметром. Затем проверьте, существует ли он там, и верните либо значение, либо ложь, чтобы получить функцию, которая возвращает значение/ложь вызывающей стороне.
Единственная проблема состоит в том, чтобы заставить строку работать как суперглобальную, когда вы не знаете, что это такое. Я сделал это раньше с помощью переключателя, который проверял параметр, и в случае, если он был «получен», он устанавливал $_GET в значение другой переменной. Однако я не хочу делать это так, я хочу, чтобы было легко добавлять дополнительные функции, не касаясь fetchdata.
Я попробовал $method = eval($method), но это не сработало. ($method = "$_GET"), есть предложения?
РЕДАКТИРОВАТЬ: Извините, если я недостаточно ясно выразился. У меня есть переменная X со строковым значением "$_GET", как мне сделать так, чтобы X получала значения из источника, описанного в строке?
Так просто это
$X = $_GET, если X имеет значение "$_GET"
$X = $_POST, если X имеет значение "$_POST"
Я просто не знаю, какое значение имеет X, но ему нужно получить данные из суперглобала с тем же именем, что и его значение.