2
class A {
    protected $a;

    // SOME CODE
}


class B extends A {
   // SOME CODE
}

B クラス内の変数 $a の保護された値を編集するにはどうすればよいですか?

使用しようとしていますparent::$a = "Some Value"が、機能しません。

4

2 に答える 2

5

protectedを使用して宣言されていないインスタンス プロパティは、 を使用staticしてサブクラスでアクセスできます$this

class A {
    protected $a;

    // SOME CODE
}


class B extends A {
   // SOME CODE
   public function edit($val) {
       $this->$a = $val;
       echo "a is now {$this->a}\n";
   }
}

電話:

$b = new B();
$b->edit('foo'); // a is now foo

マニュアル、特に例を参照してください。

于 2013-05-03T14:46:16.703 に答える
1
class B extends A {    
  public function foo($val)
  {
    $this->a = $val;
  }
}

とてもシンプルです:)

覚えておいてください

保護されていると宣言されたメンバーは、クラス自体内で、継承されたクラスと親クラスによってのみアクセスできます

PHPマニュアルより

于 2013-05-03T14:46:28.320 に答える