在 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中文网其他相关文章!