Как вернуть значение по умолчанию для свойства после его использования - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть свойство isAccessible в моем классе, и оно всегда должно быть ложным, если мы не передадим истинный параметр в метод доступа.

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

Как я могу это сделать, возможно ли это?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Это не очень хороший подход, чтобы изменить значение свойства в одном методе, сделать что-то и в конце этого метода изменить это свойство обратно.Это должно быть сделано специально, а не одним способом, чтобы рассказать другому разработчику об этой логике.Но если вы действительно хотите сделать это таким образом, сделайте это, используя шаблон декоратора

0 голосов
/ 05 декабря 2018

Если вы хотите установить для свойства isAccessible значение false после того, как метод доступа завершит свою работу.Вы можете установить необходимое значение перед оператором возврата

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 только в качестве параметра метода доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...