我试图通过使用变量类名访问类中的静态变量.我知道为了访问类中的函数,您使用call_user_func():
class foo {
function bar() { echo 'hi'; }
}
$class = 'foo';
call_user_func(array($class, 'bar')); // prints hi
Run Code Online (Sandbox Code Playgroud)
但是,当尝试访问类中的静态变量时,这不起作用:
class foo {
public static $bar = 'hi';
}
$class = "foo";
call_user_func(array($class, 'bar')); // nothing
echo $foo::$bar; // invalid
Run Code Online (Sandbox Code Playgroud)
我如何得到这个变量?它甚至可能吗?我有一种不好的感觉,这只适用于PHP 5.3,我正在运行PHP 5.2.6.
假设我有一个这样的课程:
class Order {
const STATUS_INITIALIZED = 'initialized';
const STATUS_ORDERED = 'ordered';
}
Run Code Online (Sandbox Code Playgroud)
而且我想像这样抓住常数:
$status = $_GET['status']; // ?status=STATUS_ORDERED
Run Code Online (Sandbox Code Playgroud)
有没有办法访问常量的值,给定常量的名称作为字符串?
我试过了:
Order::$status
Order::$$status
Run Code Online (Sandbox Code Playgroud)