因此,我正在重构代码以实现更多的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']);
}
当我收到错误消息时:
调用非对象上的成员函数set_page_title()
那我想念什么呢?
这意味着它$objPage
不是对象的实例。我们可以看到您用来初始化变量的代码吗?
当您期望特定的对象类型时,还可以使用PHP的类型提示功能
Docs 在违反逻辑时得到错误:
function page_properties(PageAtrributes $objPortal) {
...
$objPage->set_page_title($myrow['title']);
}
此函数仅接受PageAtrributes
第一个参数。