【发布时间】:2015-06-14 21:18:04
【问题描述】:
自从我从 PHP 5.2x 或 5.3x(不确定是哪个)升级到 5.4x 后,我收到以下错误:
syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting T_VARIABLE
以下是产生错误的代码。本质上,我有一个类来创建 SVG 图像,该类使用派生类中定义的静态 draw() 方法和使用 Imagick 将 SVG 转换为 PNG 的基类上的静态辅助函数 drawPng()。错误在标记线处。
static function drawPng($filename, $data, &$options=array()) {
ob_start();
static::draw($data, $options); // <-- Error occurs
$svg = ob_get_clean();
$im = new Imagick();
if(!$im) die('Imagick not installed');
$bg = (empty($options['background']) ? 'transparent' : $options['background']);
$im->setBackgroundColor(new ImagickPixel($bg));
$im->readImageBlob($svg);
$im->setImageFormat('png');
if($filename) $im->writeImage($filename);
else echo $im->getImageBlob();
}
如上所示的代码在升级之前一直有效。感谢您的帮助。
【问题讨论】:
-
你在升级过程中改变了你的 php.ini 吗?
-
T_PAAMAYIM_NEKUDOTAYIM表示“双冒号”。试试self::draw而不是static::draw也许? -
您确定代码在升级之前有效吗? LSB 在 5.3 中添加
-
也许我在 5.3 上。我的虚拟主机在没有告诉我的情况下升级到了 5.4,是的,在升级之前的过去 6 个月里一直有效
标签: php