2015-10-18 3 views
0

я попытался вызвать нон статический метод так:вызова не статический метод динамически

call_user_func_array(array("Notifications", "getNots"), $params) 

и я получил сообщение об ошибке: call_user_func() ожидает параметр 1, чтобы быть действительным обратного вызова, не статический метод ...

функция:

class Notifications { 
    public function getNots($limit, $test = 0) { 
    } 
} 

что делать?

на самом деле я пытался построенной функции, которая получила HTML код HTML страницы и заменить все тексты так:

{{ Notifications.getNotes(3) }} 

для возвращения методом ...

Тпх много

+0

Вы попробовали это: $ notifications = new Уведомления(); call_user_func_array (массив ($ notifications, "getNots"), $ params)); – Thesee

+0

У меня есть объект из другого объекта: шаблон объекта -> имя объекта переменной – kfir91

ответ

0

Для сделайте это с помощью нестатической функции, вам нужно создать экземпляр объекта Notification (если не выполнить alrady, а затем передать его в call_user_func_array() как первое значение в массиве обратного вызова. Что-то вроде этого:

$notifications = new Notification(); 
call_user_func_array(array($notifications, "getNots"), $params); 

Если вы уже создали экземпляр, вы передаете экземпляр, а не имя класса.

+0

Зачем использовать 'call_user_func_array'? – DarkBee

+0

Вам нужно будет спросить оригинальный плакат. Я бы использовал для случая, когда мне нужно было вызвать набор методов, а определенные методы зависели от некоторых предыдущих входных данных пользователя. Это может быть проще, чем добавлять коммутатор или кучу if условностей в этом случае. – Focorunner

Смежные вопросы