php - 无法从 $class 获取静态变量

标签 php class scope

我有一个关于“动态”类初始化的问题,让我解释一下我的意思:

$class = 'User';
$user = new $class();

//...is the same as doing
$user = new User();

所以...这不是问题,但我在从类中调用静态变量时遇到了一些麻烦,例如:

$class = 'User';
print $class::$name;

它给出了以下错误:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in

当然,我已经测试过执行 print User::$name; 并且有效。所以类有效。

为什么会这样,有什么解决办法吗?

跟进问题:
还有什么正当理由不使用这种“动态”方式创建类?

最佳答案

此代码在 PHP 5.4.3 上运行良好:

<?php

class A {
    public static $var = "Hello";
}

print(A::$var);

$className = "A";
print($className::$var);

?>

关于php - 无法从 $class 获取静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087743/

相关文章:

objective-c - 错误: unrecognized selector sent to class

java - 我们也有包装类的对象池吗?

r - 应用系列功能的范围如何?

javascript - Nodejs EventEmitter - 定义监听器功能的范围

php - Laravel 通过用户或管理员加入帖子表

php - 添加到购物车并重定向到 WooCommerce 中可变产品的结帐

javascript - 流程图使用jquery从span获取数据

php - 将 php 变量绑定(bind)到 pdo 查询

关于扩展类的PHP继承问题

angularjs - Angular JS 可调整大小的 div 指令