首页  >  文章  >  后端开发  >  如何在 PHP 中将匿名函数分配给类属性?

如何在 PHP 中将匿名函数分配给类属性?

Susan Sarandon
Susan Sarandon原创
2024-10-26 13:25:02632浏览

How to Assign Anonymous Functions to Class Properties in PHP?

在 PHP 中将匿名函数分配给类属性

在 PHP 中,无法直接将类属性初始化为匿名函数:宣布它。下面的代码片段:

<code class="php">class AssignAnonFunction {
    private $someFunc = function() {
        echo "Will Not work";
    };
}</code>

生成错误消息“解析错误:语法错误,意外的 T_FUNCTION。”这是因为 PHP 语言不允许在声明阶段用函数初始化属性。

常值初始化限制

根据 PHP 手册,类属性只能在声明期间用常量值进行初始化。常量值是可以在编译时计算而不依赖于运行时信息的值。但是,函数不符合此标准,因此在声明期间不允许作为属性初始值设定项。

使用构造函数的解决方法

尽管无法使用匿名函数初始化属性在声明期间,可以将函数分配给构造函数方法中的属性。将前面的代码修改为以下内容可以进行赋值:

<code class="php">class AssignAnonFunctionInConstructor {
    private $someFunc;

    public function __construct() {
        $this->someFunc = function() {
            echo "Does Work";
        };
    }
}</code>

在创建对象时调用构造函数方法,从而允许在运行时将匿名函数分配给属性。

以上是如何在 PHP 中将匿名函数分配给类属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn