访问另一个 class 的私有变量的最有效方式?
Most efficient way of accessing a private variable of another class?
有很多方法可以让您访问另一个 class 的私有变量,但是最有效的方法是什么?
例如:
我有这个 class,其中有一些细节:
class something{
private $details =
['password' => 'Whosebug',];
}
在另一个 class 中,我需要访问它们,例如(尽管这显然行不通,因为变量不在这个 class 的范围内):
class accessSomething{
public function getSomething(){
print($something->details['password']);
}
}
像这样的函数在 class "something" 中是否足够好以供访问 class 使用?:
public function getSomething($x, $y){
print $this->$x['$y'];
}
您应该在 class 中使用适当的 getters/setters
以允许访问其他受限数据。
例如
一个class
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();
有很多方法可以让您访问另一个 class 的私有变量,但是最有效的方法是什么?
例如:
我有这个 class,其中有一些细节:
class something{
private $details =
['password' => 'Whosebug',];
}
在另一个 class 中,我需要访问它们,例如(尽管这显然行不通,因为变量不在这个 class 的范围内):
class accessSomething{
public function getSomething(){
print($something->details['password']);
}
}
像这样的函数在 class "something" 中是否足够好以供访问 class 使用?:
public function getSomething($x, $y){
print $this->$x['$y'];
}
您应该在 class 中使用适当的 getters/setters
以允许访问其他受限数据。
例如
一个class
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();