Ссылка или вызов функции через переменную в классе php - PullRequest
0 голосов
/ 24 ноября 2018

почему я не могу присвоить функцию переменной в классе: например,

class call {
    public $number = function() {
        return 3 * 2;
    }
}
$num = new call();
$num->number // expecting output 6

Можно ли назначить метод (функцию) свойству (переменной), чтобы метод мог бытьвызывается вне класса как собственность.например,

class call {
    public $number = $this->value();
    private function value() {
        return 3 * 2;
    }
}

$num = new call();
echo $num->$number // expecting output 6;

1 Ответ

0 голосов
/ 24 ноября 2018

Использовать __get() магический метод, который вызывается при попытке получить значение недоступных свойств

class call {
    public function __get($name) {
        if ($name == 'number')
            return $this->value();
    }
    private function value() {
        return 3 * 2;
    }
}

$num = new call();
echo $num->number;
// 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...