我有一行代码需要在PHP 5.3.3中运行,但我不能升级PHP版本。
错误出现在下面最后一行的::class属性中
(出乎意料的是T_CLASS,预期是T_STRING或T_VARIABLE或'$')。
上下文是。
abstract class E
{
public static function validate($value)
{
$reflector = new ReflectionClass(static::class);
有什么办法能让它在 PHP 5.3.3 中工作?
::class
在PHP 5.5中引入了类的常量。相当于 static::class
在PHP < 5.5中,将是 get_called_class()
所以你代码中的错误行应该是这样的。
$reflector = new ReflectionClass(get_called_class());