构造函数中实例化的PHP变量重置为null

构造函数中实例化的PHP变量重置为null,php,constructor,null,rss,simplexml,Php,Constructor,Null,Rss,Simplexml,我正在用PHP编写一个小型RSS解析器,我正在使用simplexml,我遇到了一个问题。我创建了一个名为ArticleFormatter的类,在这里 class ArticleFormatter { private $feedData; function __construct($feedUrl) { $feedData = simplexml_load_file($feedUrl); } function parse() {

我正在用PHP编写一个小型RSS解析器,我正在使用simplexml,我遇到了一个问题。我创建了一个名为ArticleFormatter的类,在这里

class ArticleFormatter {

    private $feedData;

    function __construct($feedUrl) {
        $feedData = simplexml_load_file($feedUrl);
    }

    function parse() {
        echo " \n begin parsing \n";
        $rawArticles = $feedData->channel[0];
        print_r($rawArticles);
        echo "\n";
        $currentArticle = $rawArticles->item[0];
        print_r($currentArticle);
        $articles = array();
        echo "\n starting loop \n";
        for($i = 0; !is_null($currentArticle); $i++) {
            echo "ran";
            array_push($articles, $currentArticle);
            $currentArticle = $rawArticles->item[$i + 1];
        }
        return $articles;
    }

}
现在是这样,我知道simplexml\u load\u文件返回一个合法的SimpleXMLElement,因为当我在构造函数中放入print语句时,它会打印出所有类型的xml元素,而且,我知道$feedData->item[0]是一个合法的SimpleXMLElement,因为我也尝试在构造函数中打印它。然而,当parse()按原样运行时,输出的只是“开始解析起始循环数组()”(调用此函数的代码输出返回值)。向我建议,当parse函数运行时,$feedData在某种程度上等于NULL,因此该函数只返回一个空数组。我确信我在某处犯了一个愚蠢的错误,所以任何建议都将不胜感激

class ArticleFormatter {

    private $feedData;

    function __construct($feedUrl) {
        $this->feedData = simplexml_load_file($feedUrl);
    }

    function parse() {
        print_r($this->feedData);
    }
}

//试试这个,我相信你会知道下一步如何使用PHP,如果你想调用方法或使用你所在类的属性,你总是必须使用
$this

function __construct($feedUrl) {
    $this->feedData = simplexml_load_file($feedUrl);
}


function parse() {
        echo " \n begin parsing \n";
        $rawArticles = $this->feedData->channel[0];
        print_r($rawArticles);
        ...
}

您不能以这种方式在方法中访问$feedData。您应该通过$thisOh作为对象属性访问它,所以我实际上在这里处理3个完全不同的变量。我将进一步了解变量范围。谢谢