PHP-GET和POST请求之间的差异


PHP - Diffrentiating between GET and POST request

我设置PHP的方式是,所有内容都转到一个名为Router的中心文件。路由器获取一个参数操作并调用该方法。

在Node.js中,可以获得相同方法的get版本和post版本。我想知道,在PHP中有这样的东西吗?

基本上我希望这种情况发生:

有一个加法方法。

第1页有添加按钮。添加按钮转到需要填写以添加项目的表单-获取请求。单击后,将调用add方法。

第2页有另一个添加按钮。添加按钮现在使用表单数据进行插入,并添加一个项目-发布请求。

现在,两者都调用相同的方法,但在文件中定义了该方法的get版本和post版本。

我想知道如果没有两个不同名称的方法,这是否可行。

您可以使用$_SERVER['REQUEST_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
  }
}

实现REST API的完整示例可以在这里找到:

尝试使用$_REQUEST。它是$_POST$_GET的通用替代品。