0

I've narrowed down my issue to the line when I include the SimplePie RSS script (simplepie.inc). I'm not sure why exactly it's throwing this error, but I thought StackOverflow might have more insight than I have been able to find via Google thus far.

Here's the code to the simple class that I'm using to get the SimplePie feed results:

<?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();
    }
}

?>

If you have any insight at all for me that would be awesome! Thank you!

CrowderSoup
  • 164
  • 5
  • 16

2 Answers2

3

You can't instantiate a class when defining a property. Only constant values are valid syntax. Instantiate $feed inside the constructor instead:

public $feed;

public function __construct($URI)
{
    $this->feed = new SimplePie();
    // ...
}

From the manual:

This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.

rid
  • 61,078
  • 31
  • 152
  • 193
2
public $feed = new SimplePie();

You can't use a function or class assignment in the property declaration. Define as NULL, and set the property value as new SimplePi

Mark Baker
  • 209,507
  • 32
  • 346
  • 385