PHP如何处理_GET / _POST而不重复代码库

时间:2012-03-03 09:49:27

标签: php post get

我正在开发各种API。它有点像RESTful API减去当前的put / delete。使用GET / POST或希望它会。

我的问题是目前我不想拥有镜像代码,如果可能的话,一个基于POST的行为和一个基于GET的行为,其中两个字面上都是相同的代码。

所以我想弄清楚是否有一个解决方案,我可以用来处理POST / GET数据,我可以使用相同的代码库,但不必为$ _GET制作一个副本,为$ _POST制作另一个副本? / p>

我知道我可以做类似

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

但是这个方法的问题很明显,也许我只是在盒子外思考得太远,所以我不知道......想法?

5 个答案:

答案 0 :(得分:5)

是的,你可以为此创建一个通用函数。

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

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

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

答案 1 :(得分:3)

您可以使用$_REQUEST

答案 2 :(得分:2)

定义一个接受参数数组的函数:

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

然后这样称呼:

if(isset($_POST))
{
  process($_POST);
}
if(isset($_GET))
{
  process($_GET);
}

答案 3 :(得分:1)

您可以使用$_SERVER["REQUEST_METHOD"]来确定您的脚本是通过HTTP GET还是POST方法调用的。现在假设您已将整个脚本编码为使用$_GET,您可以复制所有后期变量以获取变量:

if($_SERVER["REQUEST_METHOD"] == "POST") {
$_GET = $_POST;
}

答案 4 :(得分:0)

这很容易。
代码基于POST行事,基于GET的行为永远不会相同。

  • GET用于从服务器请求数据。
  • POST用于修改服务器上的数据。

这是不同的代码,它们永远不会干扰