Переопределение переменных класса PHP - PullRequest
0 голосов
/ 16 марта 2011

Можно ли заставить следующий метод bar () возвращать "синий"?

class TestClass
{
    public $var1 = "red";

    public function foo() //returns red
        {
            return $this->var1;
        }

    public function bar() //still returns red
        {
            $this->var1 = "blue";

            return $this->var1;
        }
}

Я знаю, что свойства класса не могут быть переменными, результатами сложения и т. Д. Я читал о перегрузке с использованием __set и __get, однако, похоже, она ориентирована на полностью динамические свойства.

Ответы [ 2 ]

3 голосов
/ 16 марта 2011

Ваш код в настоящее время работает так, как вы его описали.Из интерактивной оболочки PHP:

php > $t = new TestClass();
php > echo $t->foo();
red
php > echo $t->bar();
blue
php > echo $t->foo();
blue

Возможно, вы можете объяснить свою проблему другим способом?

0 голосов
/ 16 марта 2011

Вы можете обновить метод bar () как заданную строку с необязательным параметром.

публичная функция bar ($ mycolor = 'red') {$ this-> var1 = $ mycolor;вернуть $ this-> var1;}

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