You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现类似Laravel的Request接口来获取HTML输入值?

PHP Request类实现:直接通过属性访问表单数据

需求说明

需要实现一个Request类,让控制器方法可以通过$request->inputname的方式,直接获取HTML表单中对应name属性的输入值。

HTML表单示例

<input name="inputname">
<input name="anotherinputname">

Request类实现代码

class Request {
    // 存储合并后的请求数据
    private $data;

    public function __construct() {
        // 合并GET与POST数据,POST数据优先级高于GET
        $this->data = array_merge($_GET, $_POST);
    }

    // 魔术方法:访问不存在的属性时自动触发
    public function __get($name) {
        // 存在对应键则返回值,否则返回null
        return $this->data[$name] ?? null;
    }
}

控制器代码示例

public function create(Request $request) {
    echo $request->inputname;
    echo $request->anotherinputname;
}

关键逻辑说明

  • 构造方法里合并了$_GET和$_POST的请求数据,确保两种提交方式的表单值都能被获取,且POST提交的同名数据会覆盖GET数据。
  • __get魔术方法是核心:当你尝试访问$request对象中未定义的属性(比如$request->inputname)时,PHP会自动调用这个方法,从预存的请求数据里匹配对应键名的值返回,找不到则返回null。

内容的提问来源于stack exchange,提问作者KATHEESKUMAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:50:31