PHP как обрабатывать _GET / _POST без дублирования базы кода - PullRequest
0 голосов
/ 03 марта 2012

Я работаю над своего рода API.Это своего рода RESTful API минус пут / удалить в настоящее время.Работает с GET / POST или есть надежда.

Моя проблема в настоящее время: я не хочу иметь зеркальный код, если это вообще возможно, когда один действует на основе POST, а другой действует на основе GET, где обабуквально один и тот же код в противном случае.

Так что я пытаюсь выяснить, есть ли решение, которое я могу использовать для работы с данными POST / GET, где я могу использовать ту же базу кода, но не нужно делать одну копиюза $ _GET и еще за $ _POST?

Я знаю, что могу сделать что-то вроде

if($_POST)
{
//then work with the post data
}
if($_GET)
{
//then work with the get data
}

, но проблема очевидна с этим методом, может быть, я просто не думаю достаточно далеко откоробка, так что я не знаю .. идеи?

Ответы [ 5 ]

5 голосов
/ 03 марта 2012

Да, для этого вы можете создать универсальную функцию.

function doOperation($var)
{
   //then work with the var data
}

if(isset($_POST))
{
   doOperation($_POST);
}

if(isset($_GET))
{
   doOperation($_GET);
}
3 голосов
/ 03 марта 2012

Вы можете использовать $_REQUEST.

2 голосов
/ 03 марта 2012

Определить функцию, которая принимает массив параметров:

function process($params)
{
  //then work with the params
}

тогда назовите это так:

if(isset($_POST))
{
  process($_POST);
}
if(isset($_GET))
{
  process($_GET);
}
1 голос
/ 03 марта 2012

Вы можете использовать $_SERVER["REQUEST_METHOD"], чтобы определить, был ли ваш скрипт вызван с помощью метода HTTP GET или POST. Теперь, предположив, что вы написали весь сценарий для использования $_GET, вы можете скопировать все переменные записи, чтобы получить переменные:

if($_SERVER["REQUEST_METHOD"] == "POST") {
$_GET = $_POST;
}
0 голосов
/ 03 марта 2012

Это просто.
Код действует на основе POST, а один действует на основе GET никогда не будет прежним.

  • GET используется для запроса данных с сервера.
  • POST используется для изменения данных на сервере.

это разные коды и они никогда не мешают

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...