PHP5.2中的语法错误

PHP5.2中的语法错误,php,Php,在PHP5.3中,我可以使用类名作为变量,也可以调用静态变量 $class_name = 'Test'; $class_name::$static_var; 如何在PHP5.2版本中调用它 Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in ... T_PAAMAYIM_NEKUDOTAYIM是PHP使用的双冒号范围解析-:: 你可以试试这个 $class_name='Test'$class_name->$stati

在PHP5.3中,我可以使用类名作为变量,也可以调用静态变量

$class_name = 'Test';
$class_name::$static_var;
如何在PHP5.2版本中调用它

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in ...

T_PAAMAYIM_NEKUDOTAYIM是PHP使用的双冒号范围解析-:: 你可以试试这个
$class_name='Test'$class_name->$static_var

@user762799以下是您希望在PHP5.2中实现的解决方案

class Sample{
    public static $name;

    public function __construct(){
        self::$name = "User 1";
    }
}

$sample = new Sample();
$class = 'Sample';
$name = 'name';
$val_name = "";
$str = '$class::$$name';
eval("\$val_name = \"$str\";");
//echo $val_name."<br>";
eval("\$name = $val_name;");
echo $name;
类示例{
公共静态名称;
公共函数构造(){
self::$name=“用户1”;
}
}
$sample=新样本();
$class='Sample';
$name='name';
$val_name=“”;
$str='$class::$$name';
eval(\$val\u name=\“$str\”;”);
//echo$val_name.“
”; 评估(\$name=$val\u name;); echo$name;
PAAMAYIM_NEKUDOTAYIM表示范围解析运算符(:) 实际上,在您的代码中,PHP无法在
$class\u name
的范围内识别
$static\u var
,这就是发生错误的原因


如果你还不清楚,请告诉我。谢谢:)

您真的应该更新您的PHP版本,5.2不再受支持,但是

。。。在PHP5.2中,解决这个问题的唯一方法是使用
eval

$return = eval($class_name . '::\\$static_var;');

但是,在使用此功能之前,请确保验证
$class\u name
,否则可能会插入任意代码(例如
$class\u name='do\u bad\u things();class\u name
)。

您可以参考以下链接来完成任务。或者这会对你有帮助。。谢谢。那
{$class\u name}:{$static\u var}
呢?