猿问

调用非对象上的成员函数

调用非对象上的成员函数

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

那我错过了什么?


心有法竹
浏览 811回答 4
4回答

Smart猫小萌

这意味着$objPage不是对象的实例。我们能看到您用来初始化变量的代码吗?正如您所期望的特定对象类型一样,您也可以使用pps类型提示功能博士若要获取逻辑被违反时的错误,请执行以下操作:function page_properties(PageAtrributes $objPortal) {         ...     $objPage->set_page_title($myrow['title']);}此功能只接受PageAtrributes对于第一个参数。

明月笑刀无情

有一种容易产生此错误的方法:&nbsp;&nbsp;&nbsp;&nbsp;$joe&nbsp;=&nbsp;null; &nbsp;&nbsp;&nbsp;&nbsp;$joe->anything();将呈现错误:致命错误:调用成员函数anything()关于第23行/Applications/XAMPP/xamppfiles/htdocs/casMail/dao/server.php中的非对象如果PHP只会说,致命错误:没有定义Joe的调用,因为(A)Joe为NULL或(B)Joe没有定义anything()在线<#>。通常你要构建你的班级$joe在构造函数或

小怪兽爱吃肉

任一$objPage不是实例变量,也不是您正在覆盖的实例变量。$objPage不是类的实例PageAttributes.
随时随地看视频慕课网APP
我要回答