PHP中的错误:"尝试获取非对象的属性"

时间:2018-02-08 17:51:43

标签: php oop compiler-errors

我遇到错误尝试在第44行的class Parser { public $links = array( 'infosecurity' => '', 'programming' => '', 'webdev' => '', 'linux' => '', 'algorithms' =>'' ); public $headers = array( 'infosecurity' => '', 'programming' => '', 'webdev' => '', 'linux' => '', 'algorithms' =>'' ); public $texts = array( 'infosecurity' => '', 'programming' => '', 'webdev' => '', 'linux' => '', 'algorithms' =>'' ); public function get_article_link($page_link, $tag, $type) { $html = get_curl($page_link); $dom = str_get_html($html); $article = $dom->find($tag); return $article[0]->$type.'<br>'; //line 44 } public function get_content($page_link, $tag, $type) { $html = get_curl($page_link); $dom = str_get_html($html); $article = $dom->find($tag); return $article[0]->$type.'<br>'; } } 中获取非对象的属性 这是我的班级:

 $title =  $Habr ->get_content($Habr->links["$key"], 'title', 'plaintext');    
        $str = strpos($title, "/");
        $title = substr($title, 0, $str);
        $Habr->headers[$key] = $title;            
        echo "<br><b>TITLE : </b><br>".$title."<br>";           
        $text = $Habr ->get_content($Habr->links[$key],'.post__text','plaintext');
        $Habr->texts[$key] = $text;
        echo "<b>TEXT OF PAGE:<br></b>".$Habr->texts[$key]."<br>";         
        }

这是我调用方法的代码部分:

 $title =  $Habr ->get_content("HERE LINK", 'title', 'plaintext');

但是当我调用函数时使用字符串链接,例如

array(5) { ["infosecurity"]=> string(55) "https://habrahabr.ru/company/kaspersky/blog/348572/
" ["programming"]=> string(50) "https://habrahabr.ru/company/2gis/blog/348510/
" ["webdev"]=> string(52) "https://habrahabr.ru/company/skyeng/blog/348606/
" ["linux"]=> string(51) "https://habrahabr.ru/company/flant/blog/348324/
" ["algorithms"]=> string(37) "https://habrahabr.ru/post/348530/
" } 

它工作正常。 我该如何解决这个错误?

以下是 var_dump($ Habr-&gt; links);

的结果
flex-flow:column

1 个答案:

答案 0 :(得分:-1)

我会使用调试器并在使用断点调用之前检查get_content调用的所有输入的值。如果您没有调试器,请添加日志记录功能以将您的变量写入日志。您可能会发现其中一个或多个未初始化。这会导致你的错误。