gpt4 book ai didi

php - 无法使用::scope 运算符从实例访问类常量

转载 作者:可可西里 更新时间:2023-11-01 12:41:08 28 4
gpt4 key购买 nike

我今天遇到了一个奇怪的问题,即使作为一名 PHP 工程师,我也被这个问题难住了:

看来您可以从对象实例访问类常量,例如:

class a {
const abc = 1;
}
$a = new a();
var_dump($a->abc);

这将输出 null 而不是预期的 1。我能够执行以下操作:

class a {
const abc = 1;
}
$a = new a();
var_dump(a::abc);

但是在子对象的上下文中并不知道父对象到底是谁,我觉得这样做非常烦人:

class a {
const abc = 1;
}
$a = new a();
$c = get_class($a);
var_dump($c::abc);

是我还是这完全是愚蠢的,如果不是,请告诉我为什么它会这样工作。

编辑

另一种方法,但并不是更好:

class a {
const abc = 1;
}
class b {
public function getA(){
return new a();
}
}
$b = new b();
$c = $b->getA();
var_dump($c::abc);

最后一个例子更像我正在做的和正在经历的......

最佳答案

只需将实例变量与范围解析运算符一起使用:

$a = new a();
var_dump($a::abc);

prints 1

关于php - 无法使用::scope 运算符从实例访问类常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11976806/

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