我的课堂上有一个isAccessible
属性,除非我们在访问方法中传递true参数,否则它应该始终为false。
class Foo {
public $isAccessible;
public function __construct(){
$this->isAccessible = false;
}
public function access($bool){
$this->isAccessible= $bool;
return $this;
}
public function __destruct(){
$this->isAccessible = false;
}
}
$class= new Foo;
echo $class->isAccessible // false
$class->access(true)->andsomeothermethods..
// After using access method, it should be false then.
echo $class->isAccessible // it's shows true but i want it as false
我该怎么办,那有可能吗?
答案 0 :(得分:0)
如果要在访问方法结束后将isAccessible属性设置为false。您可以在return语句之前设置必要的值
class Foo {
public $isAccessible = false;
public function access($bool){
$this->isAccessible = $bool;
// some code
$this->isAccessible = false;
return $this;
}
}
如果要在调用该类的另一个方法后将isAccessible属性设置为false,可以在每个方法的开头设置该属性
class Foo {
public $isAccessible = false;
public function access($bool){
$this->isAccessible = $bool;
// some code
return $this;
}
public function someMethod()
{
$this->isAccessible = false;
// some code
return $this;
}
}
也许,只有将isAccessible用作访问方法的参数。
答案 1 :(得分:0)
更改属性的一个方法的值,执行某些操作,然后在此方法结束时,将该属性重新设置,这不是一个好方法。这应该是有目的的,而不是用一种方法来告诉另一位开发者这种逻辑。但是,如果您真的想以这种方式进行操作,请使用decorator pattern