Самый эффективный способ доступа к закрытой переменной другого класса?

Есть много методов, которые позволяют вам получить доступ к закрытым переменным другого класса, однако, каков наиболее эффективный способ?

Например:

У меня есть этот класс с некоторыми деталями в:

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

В другом классе мне нужно получить к ним доступ, например (хотя это, очевидно, не сработает, поскольку переменная не входит в область действия этого класса):

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

Будет ли такая функция в классе "что-то" достаточно хороша для использования классом доступа?:

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

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();
Другие вопросы по тегам