Мне нужно вызвать динамическую функцию и отправить текущий объект в качестве ссылки в указанной функции.
В PHP 5.3 это работает, в отличие от PHP 5.4:
$value = call_user_func("MyFunction", $value, $row, $this,etc....); // using $this because this call happends inside an object
Где MyFunction:
function MyFunction($value,&$row,&$column,&$grid,etc...){
...
}// myFunction is a standalone function, not inside any object
В PHP 5.4 я получаю сообщение об ошибке "Параметр должен быть ссылкой, задано значение". Соответствующая ошибка относится к параметру $this в строке call_user_func. Кажется, что если я укажу $this непосредственно в вызове, это считается передачей по значению, потому что, если я сделаю так, это сработает:
$that = &$this;
$value = call_user_func("MyFunction", $value, $row, $that,etc....);
И я должен сделать это со всеми остальными параметрами, которые связаны с текущим объектом.
Вопрос: есть ли другой, более элегантный способ сделать это? Я что-то упускаю?