访问另一个类的私有变量的最有效的方法



有许多方法允许您访问另一个类的私有变量,但是最有效的方法是什么?

例如:

我有这个类,其中有一些细节:

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

在另一个类中,我需要访问它们,例如(尽管这显然不起作用,因为变量不在该类的作用域内):

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

这样的函数在类"某事"中是否足够好以供访问类使用?:

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

你应该在你的类中使用适当的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();

相关内容

  • 没有找到相关文章

最新更新