Я играю с анонимными функциями PHP 5.3 и пытаюсь эмулировать объекты, основанные на прототипах, такие как javascript:
$obj = PrototypeObject::create();
$obj->word = "World";
$obj->prototype(array(
'say' => function ($ins) {
echo "Hello {$ins->word}\n";
}
));
$obj->say();
Это помещает «Hello World», первый параметр является экземпляром класса (как python) но я хочу использовать эту переменную, когда я вызываю функцию, которую я делаю:
$params = array_merge(array($this),$params);
call_user_func_array($this->_members[$order], $params);
И пробую это без результатов:
call_user_func_array($this->_members[$order] use ($this), $params);
Слишком попробуй, в методе __set:
$this->_members[$var] use ($this) = $val;
И
$this->_members[$var] = $val use ($this);
Есть идеи?