gpt4 book ai didi

php - 使用匿名函数初始化类属性

转载 作者:IT王子 更新时间:2023-10-29 00:12:09 25 4
gpt4 key购买 nike

为什么在 php 中声明属性时无法将属性初始化为函数?以下代码片段导致 Parse error: syntax error, unexpected T_FUNCTION

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

但是您可以将属性初始化为字符串、数字或其他数据类型吗?

编辑:

但我可以在 __construct() 方法中将一个函数分配给一个属性。以下确实有效:

<?php
class AssignAnonFunctionInConstructor {
private $someFunc;

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

最佳答案

因为它没有用 PHP 实现。

http://www.php.net/manual/en/language.oop5.properties.php .引用:

They (properties) are defined by using one of the keywords public, protected, or private, followed by a normal variable declaration. This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.

您不能像这样初始化属性,函数不是常量值。因此我最初的回答是“它没有实现”。

为什么没有实现?我只能猜测——这可能是一项相当复杂的任务,而且还没有人着手实现它。和/或对此类功能的需求可能不足。

关于php - 使用匿名函数初始化类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1633012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com