我正在开发各种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
}
但是这个方法的问题很明显,也许我只是在盒子外思考得太远,所以我不知道......想法?
答案 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的行为永远不会相同。
这是不同的代码,它们永远不会干扰