Самый эффективный способ доступа к закрытой переменной другого класса?
Есть много методов, которые позволяют вам получить доступ к закрытым переменным другого класса, однако, каков наиболее эффективный способ?
Например:
У меня есть этот класс с некоторыми деталями в:
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();