小编典典

调用非对象上的成员函数

php

因此,我正在重构代码以实现更多的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()

那我想念什么呢?


阅读 403

收藏
2020-05-26

共1个答案

小编典典

这意味着它$objPage不是对象的实例。我们可以看到您用来初始化变量的代码吗?

当您期望特定的对象类型时,还可以使用PHP的类型提示功能
Docs
在违反逻辑时得到错误:

function page_properties(PageAtrributes $objPortal) {    
    ...
    $objPage->set_page_title($myrow['title']);
}

此函数仅接受PageAtrributes第一个参数。

2020-05-26