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

PHP调用命名类时为何抛出“Use of undefined constant”错误?

解决PHP中"Use of undefined constant"错误(调用静态类方法问题)

嘿,我完全懂作为PHP新手碰到这种看似简单却卡壳的问题有多闹心!咱们来把你的问题拆解开,轻轻松松搞定它~

首先,你遇到的「Use of undefined constant」错误,根源在于这行代码:var_dump(Request);。在PHP里,如果你直接写一个没有引号包裹的标识符(比如这里的Request),它会默认把这个标识符当成常量来解析,但你根本没定义过叫Request的常量,所以就报错啦——它完全没意识到你指的是你刚刚定义的Request类。

而你的目标是调用uri()这个静态方法,那正确的写法应该是这样的:

class Request {
    public static function uri(){
        return 'test';
    }
}

// 调用静态方法的标准语法:类名::方法名()
var_dump(Request::uri());

这样运行后,你就能得到预期的输出string(4) "test"了。

另外补充两个新手可能会用到的小知识点:

  • 如果你只是想查看类名的信息,而不是调用方法,那可以用两种方式避免常量错误:
    1. 把类名用单引号/双引号包裹:var_dump('Request');
    2. 用PHP 5.5+支持的::class语法(更推荐,尤其是涉及命名空间的场景):var_dump(Request::class);
  • 注意PHP的类名在Linux/Unix系统下是区分大小写的,Windows下不区分,养成大小写一致的习惯能避免很多奇怪的问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:42:15