gpt4 book ai didi

php - 为什么我不能使用占位符从类中调用静态属性?

转载 作者:行者123 更新时间:2023-12-05 00:04:00 24 4
gpt4 key购买 nike

为什么我不能使用占位符从类中调用静态属性?

举例说明:

class Foo {
public $obj_property = 'works';
public static $static_property = 'does not work';
}

/**this works*/
$foo = new Foo();
$obj_prop = 'obj_property';
echo $foo->$obj_prop;

/**this fails*/
$static_prop = '$static_property';
echo Foo::$static_prop;

返回的错误是Access to undeclared static property: Foo::$static_prop。我知道它正在尝试寻找不存在的 $static_prop 。但它为什么要这样做?
它不应该寻找 $static_property - 因为那是 $static_prop 的值吗??

如果这个问题已经被问过,我很抱歉 - 找遍了但没找到。

(编辑:Related question found here 询问如何访问变量。我的问题更多的是问为什么而不是如何。但另一个问题肯定是相关且有帮助的。)

最佳答案

表达式 Foo::$static_prop 表示“在类 Foo 中定义的静态变量 static_prop

这个表达式有效:

$static_prop = 'static_property';
echo Foo::$$static_prop;

对于双美元表达式,首先 $static_prop 被评估为 'static_property',然后可以找到 Foo::$static_property

关于php - 为什么我不能使用占位符从类中调用静态属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59598174/

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