oop — call_user_func с $ this в качестве параметра в php 5.4

Мне нужно вызвать динамическую функцию и отправить текущий объект в качестве ссылки в указанной функции.

В 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....);

И я должен сделать это со всеми другими параметрами, которые связаны с текущим объектом.

Вопрос: есть ли другой, более элегантный способ сделать это? Я что-то пропустил?

0

Решение

Вам не нужно принимать параметр по ссылке в первую очередь. Измените свою функцию на:

function MyFunction($value, $row, $column, $grid, ..) ..

Значения объекта в любом случае являются ссылками по своей природе, передача их по ссылке ничего не добавляет на самом деле и / или может не выполнять то, что вы думаете.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]