AKoval
Guest
call_user_func Function
Господа, может кто подсказать, в чем дело:
есть класс:
class abcd{
. . .
function fa(){
}
. . .
}
$obj = new abcd();
теперь я хочу использовать этот объект в скрипте, который только знает, что есть объект и что нужно выполнить определенную функцию (метод) этого объекта (простейший исполнитель - получет объект и название метода, который требуется выполнить).
вариант:
$exObj = &$obj;
$exMethod = "fa";
$exObj->$exMethod() почему-то не всегда работает, т.е. некоторые методы выполняются, некоторые - нет (говорит, что у объекта не найдена функция, хотя отладочная печать показывает, что и объект нормальный и функция такая в нем есть).
Дальше я нашел в мануале описание ф-ции call_user_func. После поисков по сети узнал, что ежели использрвать ее в виде:
call_user_func(array(object, "method"));
то она как раз годится для меня.
Пишу:
call_user_func(array(&$obj, "fa")); - работает.
если же пишу:
call_user_func(array(&$obj, $exMethod)); - полный аут с вылетом Apache (отлаживаю я на своем компе Win98+Apache1.3.19+PHP4.2.1).
Что-то неправильно в работает, а что - не знаю.
Господа, может кто подсказать, в чем дело:
есть класс:
class abcd{
. . .
function fa(){
}
. . .
}
$obj = new abcd();
теперь я хочу использовать этот объект в скрипте, который только знает, что есть объект и что нужно выполнить определенную функцию (метод) этого объекта (простейший исполнитель - получет объект и название метода, который требуется выполнить).
вариант:
$exObj = &$obj;
$exMethod = "fa";
$exObj->$exMethod() почему-то не всегда работает, т.е. некоторые методы выполняются, некоторые - нет (говорит, что у объекта не найдена функция, хотя отладочная печать показывает, что и объект нормальный и функция такая в нем есть).
Дальше я нашел в мануале описание ф-ции call_user_func. После поисков по сети узнал, что ежели использрвать ее в виде:
call_user_func(array(object, "method"));
то она как раз годится для меня.
Пишу:
call_user_func(array(&$obj, "fa")); - работает.
если же пишу:
call_user_func(array(&$obj, $exMethod)); - полный аут с вылетом Apache (отлаживаю я на своем компе Win98+Apache1.3.19+PHP4.2.1).
Что-то неправильно в работает, а что - не знаю.