当我包含SimplePie RSS脚本(simplepie.inc)时,我已将问题缩小到了界限。我不确定为什么它会引发这个错误,但我认为StackOverflow可能比我迄今为止通过Google找到的更多洞察力。
以下是我用来获取SimplePie Feed结果的简单类的代码:
<?php
// Include SimplePie
require_once("simplepie.inc");
class Channel
{
public $feed = new SimplePie();
private $feedURI = "";
function __construct($URI)
{
$this->feedURI = $URI;
$this->feed->set_feed_url($this->feedURI);
$this->feed->init();
$this->feed->handle_content_type();
}
}
?>
如果您对我有任何见解,那将是非常棒的!谢谢!
答案 0 :(得分:3)
定义属性时无法实例化类。只有常量值才是有效的语法。而是在构造函数中实例化$feed
:
public $feed;
public function __construct($URI)
{
$this->feed = new SimplePie();
// ...
}
来自the manual:
此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。
答案 1 :(得分:2)
public $feed = new SimplePie();
您不能在属性声明中使用函数或类赋值。定义为NULL,并将属性值设置为新的SimplePi