提问人:OCDev 提问时间:1/1/2014 更新时间:1/1/2014 访问量:355
PHP get_called_class() 作为引用静态属性的变量
PHP get_called_class() as variable for referencing static property
问:
我正在尝试以下每种变体来引用静态属性:
get_called_class()::$$prop
我试过了这个:
${get_called_class()}::$$prop
我尝试了很多东西,但似乎无法理解。
我知道我可以这样做:
$className = get_called_class();
$className::$$prop
但是,这意味着额外的一行代码。当然,语言必须有一种方法可以使它在同一条线上工作。有人有解决方案吗?
(顺便说一句,静态属性是受保护的,因此它失败并显示 ReflectionClass::getStaticPropertyValue。
答:
2赞
Charles
1/1/2014
#1
在不了解此处任何其他上下文的情况下,您不需要实际调用来戳 LSB 解析的静态属性。相反,请使用 static
关键字自动解析当前调用的静态类名。get_called_class
class A {
static $foo = 'from a';
public static function test($property) {
echo static::$$property, "\n";
}
}
class B extends A { static $foo = 'from b'; }
class C extends A { static $foo = 'from c'; }
PHP 交互式提示示例:
php > include '/tmp/get_called_class.php'; php > A::test('foo'); from a php > B::test('foo'); from b php > C::test('foo'); from c php >
评论
0赞
OCDev
1/1/2014
为什么当然!感谢您的提醒。我现在感到羞怯。:D
下一个:变量 + 字段中的对象
评论
(get_called_class())::$$prop