1

別のクラスのプライベート変数にアクセスできるようにする方法はたくさんありますが、最も効率的な方法は何ですか?

例えば:

私はいくつかの詳細を含むこのクラスを持っています:

class something{
    private $details = 
        ['password' => 'stackoverflow',];
}

別のクラスでは、例としてそれらにアクセスする必要があります(ただし、変数がこのクラスのスコープ内にないため、これは明らかに機能しません):

class accessSomething{
    public function getSomething(){
        print($something->details['password']);
    }
}

このような関数は、クラス「何か」内でアクセス クラスによって使用されるのに十分でしょうか?:

public function getSomething($x, $y){
        print $this->$x['$y'];
}   
4

1 に答える 1

1

getters/setters他の方法で制限されたデータへのアクセスを許可するには、クラスで適切なを使用する必要があります。

例えば

クラス

class AClass {
  private $member_1;
  private $member_2;

  /**
   * @return mixed
   */
  public function getMember1() {
    return $this->member_1;
  }

  /**
   * @param mixed $member_1
   */
  public function setMember1( $member_1 ) {
    $this->member_1 = $member_1;
  }

  /**
   * @return mixed
   */
  public function getMember2() {
    return $this->member_2;
  }

  /**
   * @param mixed $member_2
   */
  public function setMember2( $member_2 ) {
    $this->member_2 = $member_2;
  }

}

これは次のように呼び出されます。

$newClass = new AClass();

echo $newClass->getMember1();
echo $newClass->getMember2();
于 2015-07-14T13:44:31.533 に答える