0

クラス User があります。次に、プロファイルに追加情報を追加して User を拡張します。

Profile のコンストラクタは次のようになります。

function __construct($user_id) {
  // This function sets all of User's attributes
  $this->set_user_data($user_id); 

  // This function sets the extra attribute for Profile.
  $this->set_follow_status(); 
}

2 番目の関数は$this->user_id、最初の関数で設定された属性を使用します。2 番目の関数からこのエラーが発生しますFatal error: Using $this when not in object context

PHP でオブジェクトを拡張することについて何か忘れていますか?

4

1 に答える 1

3

メソッドはset_follow_statusstatic として宣言されていますか? 静的メソッドは、オブジェクトのスコープではなく、クラスのスコープで実行されるため、特定のインスタンスにはアクセスでき$thisません ( はメソッド内で設定されません)。

于 2013-01-17T17:50:57.570 に答える