Функция в PHP устарела, что мне теперь использовать?

У меня есть этот код в одном из моих классов

 public function __call($method, $args) {

        array_unshift($args, $method);

        call_user_method_array('view', $this, $args);

    }

С тех пор мы поменяли серверы, и они должны использовать более новую версию PHP5, и я получаю следующее сообщение

Function call_user_method_array() is deprecated

Где мне следует использовать отражение? Что это такое и как я могу использовать его, чтобы изменить мой код выше, чтобы он работал так, как раньше?


person alex    schedule 27.01.2010    source источник
comment
Пользователи переполнения стека могут рассказать мне то, чего нет в руководстве. Например. Лучшие практики, советы и т. д.   -  person alex    schedule 28.01.2010
comment
Функция в PHP устарела, что мне теперь использовать? Ответ, который вы приняли и назвали идеальным, просто ссылается на руководство и цитирует его.   -  person GZipp    schedule 28.01.2010
comment
Ну, в данном случае добавить было нечего, но мою проблему это все же решило. Кто вообще сказал, что Stack Overflow не должен быть первым местом, где можно что-то узнать? Здесь много вопросов ручного типа.   -  person alex    schedule 29.01.2010
comment
Здесь много вопросов ручного типа. Я должен уступить вам это.   -  person GZipp    schedule 29.01.2010
comment
Есть много вопросов ручного типа, которые получили более подробные ответы. Возьмем вопрос «Как мне получить версию PHP». Был предложен ответ phpversion(), но пользователи добавили преимущества использования константы и необходимость использования version_compare() при попытке определить, подходит ли пакет PHP для приложения. stackoverflow.com/questions/2113955   -  person alex    schedule 29.01.2010


Ответы (1)


http://php.net/manual/en/function.call-user-method-array.php

Функция call_user_method_array() устарела, начиная с PHP 4.1.0.

Новый способ:

<?php
// Old:
// call_user_method_array('view', $this, $args);
// New:
call_user_func_array(array($this, 'view'), $args);
?>
person Thiago Belem    schedule 27.01.2010