调用非对象上的成员函数
时间:2020-03-05 18:50:51 来源:igfitidea点击:
因此,我正在重构代码以实现更多的OOP。我设置了一个类来保存页面属性。
class PageAtrributes { private $db_connection; private $page_title; public function __construct($db_connection) { $this->db_connection = $db_connection; $this->page_title = ''; } public function get_page_title() { return $this->page_title; } public function set_page_title($page_title) { $this->page_title = $page_title; } }
稍后,我像这样调用set_page_title()函数
function page_properties($objPortal) { $objPage->set_page_title($myrow['title']); }
当我收到错误消息时:
Call to a member function set_page_title() on a non-object
那我想念什么呢?
解决方案
回答
这意味着$ objPage
不是对象的实例。我们可以看到我们用来初始化变量的代码吗?
当我们期望特定的对象类型时,还可以使用PHP的类型提示功能文档来在违反逻辑时得到错误:
function page_properties(PageAtrributes $objPortal) { ... $objPage->set_page_title($myrow['title']); }
此函数仅将" PageAtrributes"作为第一个参数。
回答
我意识到我没有将$ objPage传递给page_properties()。现在工作正常。