1. ホーム
  2. php

[解決済み] 非オブジェクトのメンバ関数の呼び出し【重複

2022-01-31 02:41:21

質問

そこで、より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 のタイプヒントの機能 資料 を使用すると、ロジックに違反したときにエラーが発生します。

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

この関数は PageAtrributes は最初のパラメータです。