PHP-GET和POST请求之间的区别
我设置PHP的方式是,所有内容都进入一个名为Router的中心文件。路由器获取一个参数操作并调用该方法 在Node.js中,可以有相同方法的get和post版本。我想知道,在PHP中是否可能出现类似的情况 基本上,我希望这种情况发生: 有一个add方法 第1页有添加按钮。“添加”按钮转到需要填写以添加项的表单-get请求。单击后,将调用add方法 第2页有另一个添加按钮。“添加”按钮现在使用表单数据插入,并添加一个项—post请求 现在,两者调用相同的方法,但在文件中定义了方法的get版本,并定义了方法的post版本PHP-GET和POST请求之间的区别,php,post,get,Php,Post,Get,我设置PHP的方式是,所有内容都进入一个名为Router的中心文件。路由器获取一个参数操作并调用该方法 在Node.js中,可以有相同方法的get和post版本。我想知道,在PHP中是否可能出现类似的情况 基本上,我希望这种情况发生: 有一个add方法 第1页有添加按钮。“添加”按钮转到需要填写以添加项的表单-get请求。单击后,将调用add方法 第2页有另一个添加按钮。“添加”按钮现在使用表单数据插入,并添加一个项—post请求 现在,两者调用相同的方法,但在文件中定义了方法的get版本,并定
我想知道,如果没有两个名称不同的方法,这是否可行。尝试使用
$\u REQUEST
。它是$\u POST
或$\u GET
的通用替代品 您可以使用$\u服务器['REQUEST\u METHOD']
确定它是GET还是POST。原始尝试可能如下所示:
function handle_request() {
$action = $_REQUEST['action'];
$verb = tolower($_SERVER['REQUEST_METHOD']);
// create string representation of the function to call, eg. post_add, get_add
call_user_func( $verb.'_.'$action, $_REQUEST);
}
}
如果不希望以不同的方式命名函数:
function add() {
if (tolower($_SERVER['REQUEST_METHOD') == 'post') {
// run the post version
} else {
// run the get version
}
}
可以找到实现RESTAPI的完整示例:这应该通过两种不同的方法来完成。原因是一个方法应该只做一件事。在您的情况下,如果我理解正确,您需要一个执行两个.Idk的方法…但是您可以有一个方法,然后区分您想要执行的操作(如果请求是GET或POST)并相应地处理它…在.NET中,您可以给出方法属性。因此,在该方法之上,您可以编写[GET]methodName和[POST]methodName。在PHP中有类似的东西吗?但是那样的话,我就不得不用不同的方法来命名函数。我想知道的是,如果像下面这样的东西是可能的:index.get()和index.post(),那么如果它是post-post就会被调用。我意识到我仍然需要用不同的名称来命名它,但这似乎更优雅。只是要理解:索引是一个类吗?不,它是一个方法。这就是为什么圆点是不可能的。在.NET中,您可以提供方法属性。因此,在该方法之上,您可以编写[GET]methodName和[POST]methodName。PHP中有类似的东西吗?我认为PHP方法没有这样的功能,尽管您可能对这个答案感兴趣。