a_[w]
Новичок
Обратиться к приватному методу объекта из замыкания
Здрасте!
Суть в том, что создаётся объект в котором есть специфические методы обработчики каких-то данных и держать их публичными не очень хорошо. Нужно выдавать к ним доступ только определённым объектам. Пробовал делать через замыкания, но, как оказалось, замыкания не имеют доступ к области видимости объекта в котором создавались. Можно ли как-то сохранить область видимости объекта, чтоб вызывать его приватные методы?
Вот, пример из тутора, который уже не работает, т.к. к $this в замыкании доступа нет.
Задача, в общем-то у меня такая же.
Здрасте!
Суть в том, что создаётся объект в котором есть специфические методы обработчики каких-то данных и держать их публичными не очень хорошо. Нужно выдавать к ним доступ только определённым объектам. Пробовал делать через замыкания, но, как оказалось, замыкания не имеют доступ к области видимости объекта в котором создавались. Можно ли как-то сохранить область видимости объекта, чтоб вызывать его приватные методы?
Вот, пример из тутора, который уже не работает, т.к. к $this в замыкании доступа нет.
PHP:
class Dog
{
private $_name;
protected $_color;
public function __construct($name, $color)
{
$this->_name = $name;
$this->_color = $color;
}
public function greet($greeting)
{
return function() use ($greeting) {
echo "$greeting, I am a {$this->_color} dog named
{$this->_name}.";
};
}
}
$dog = new Dog("Rover","red");
$dog->greet("Hello");