PHP OOP,未捕获的错误:调用一个成员函数setAuthor()的字符串

问题描述:

我使用的PHP版本7和我总是得到这个错误,当我创造一个新闻报道:PHP OOP,未捕获的错误:调用一个成员函数setAuthor()的字符串

Fatal error: Uncaught Error: Call to a member function setAuthor() on string in D:\xampp\htdocs\entwicklung\tools\adminlogin\lib\mod\news\newsForm.php:14 Stack trace: #0 {main} thrown in D:\xampp\htdocs\entwicklung\tools\adminlogin\lib\mod\news\newsForm.php on line 14

在这里,我创造我的对象而将节省的文章在我的数据库:

if(isset($_POST["publish"])) 
{ 
    $news = new News(); 
    $title = $news->setTitle($db, $_POST["ueberschrift"]); 
    $news = $news->setNews($db, $_POST["artikel"]); 
    $author = $news->setAuthor($db, $_POST["autor"]); //This is line 14 

    News::newsArticleCreate($db, $title, $news, $author); 

} 

这是笔者我setter方法的方法:

function setAuthor($db, $author) 
    { 
     if(!empty($author)) 
     { 
      $author = mysqli_real_escape_string($db, $author); 
      return $this->author = trim($author); 
     } 
     else 
     { 
      return false; 
     } 
    } 

是什么我的错?

+0

什么setNews返回? –

+0

我认为它应该是: - '$ news-> title = setTitle($ db,$ _POST [“ueberschrift”]); $ news-> news = setNews($ db,$ _POST [“artikel”]); $ news-> author = setAuthor($ db,$ _POST [“autor”]);' –

Fatal error: Uncaught Error: Call to a member function setAuthor() on string

错误表示您正尝试在字符串($ news)上调用setAuthor,而不是在News Class的对象上调用setAuthor。 如果更换以下行:与

$news->setNews($db, $_POST["artikel"]); 

$news = $news->setNews($db, $_POST["artikel"]); 

它应该工作的罚款。

+0

非常感谢你=) – netsam