可能重复:
Getting static property from a class with dynamic class name in PHP
在你开始阅读我的问题之前快速浏览一下:
在PHP中我们可以:
代码:
<?php
class Foo
{
const TOUCH_ME = 1;
public function __construct()
{
}
}
$class = 'Foo';
$object = new $class();
$type = $object instanceof Foo;
echo $type;//Expect to 1
?>
输出:
1
我的问题是,我该怎么做:
代码:
<?php
class Foo
{
const TOUCH_ME = 1;
public function __construct()
{
}
}
$class = 'Foo';
$var = $class::TOUCH_ME;
?>
输出:
错误
那么,我该怎么做?或者我是傻瓜?
答案 0 :(得分:0)
php -r ' class Foo { const BAR = 1; } $class = "Foo"; $var = $class::BAR; echo $var; '
// outputs 1
我使用的是PHP版本5.3,但我不明白为什么这在早期版本的PHP中不起作用,除非这是一个包含后期静态绑定的问题:
http://www.php.net/manual/en/language.oop5.late-static-bindings.php
答案 1 :(得分:0)
仅在PHP 5.3之后才能看到http://php.net/manual/en/language.oop5.constants.php