Search code examples
phprsssimplepie

parse error, expecting `T_FUNCTION' when including SimplePie RSS Script


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!


Solution

  • 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.