Beb*_*rge 3 php methods static model class
这是我今天的问题.我正在构建(为了好玩)一个简单的模板引擎.基本的想法是我有一个像{blog:content}这样的标签,我在一个方法和一个动作中打破它.问题是当我想动态调用静态变量时,我得到以下错误.
Parse error: parse error, expecting `','' or `';''
Run Code Online (Sandbox Code Playgroud)
和代码:
$class = 'Blog';
$action = 'content';
echo $class::$template[$action];
Run Code Online (Sandbox Code Playgroud)
$ template是我的类中的公共静态变量(数组),是我想要检索的那个.
Kur*_*aze 12
怎么样get_class_vars?
class Blog {
public static $template = array('content' => 'doodle');
}
Blog::$template['content'] = 'bubble';
$class = 'Blog';
$action = 'content';
$values = get_class_vars($class);
echo $values['template'][$action];
Run Code Online (Sandbox Code Playgroud)
输出'泡沫'
您可能希望首先保存对静态数组的引用.
class Test
{
public static $foo = array('x' => 'y');
}
$class = 'Test';
$action = 'x';
$arr = &$class::$foo;
echo $arr[$action];
Run Code Online (Sandbox Code Playgroud)
对不起,所有的编辑......
编辑
echo $class::$foo[$action];
Run Code Online (Sandbox Code Playgroud)
似乎在PHP 5.3中工作得很好.啊,PHP 5.3中添加了" 现在可以动态访问静态方法 "