Вы пытались сделать «Просмотр»> «Проблемы»? Он должен перечислить все проблемы в вашем текущем проекте.
Недостатком, в зависимости от ваших предпочтений, является то, что он также будет отображать ошибки других инструментов - eslint, tslint, type-cover и т. Д. .
Как вы сказали call_user_func
может легко дублировать поведение этой функции. В чем проблема?
На странице call_user_method
даже перечислены альтернативные варианты:
<?php
call_user_func(array($obj, $method_name), $parameter /* , ... */);
call_user_func(array(&$obj, $method_name), $parameter /* , ... */); // PHP 4
?>
Что касается , почему это было устарела, эта публикация объясняет это:
Это потому, что функции
call_user_method()
иcall_user_method_array()
могут быть легко дублированы с помощью:old way:
call_user_method($func, $obj, "method", "args", "go", "here");
по-новому:
call_user_func(array(&$obj, "method"), "method", "args", "go", "here");
Лично я бы, наверное, согласился с предложением переменных переменных, опубликованным Чадом .
Сделайте что-то подобное:
Я использую что-то подобное в моем методе __construct ().
$params = array('a','b','c'); // PUT YOUR PARAMS IN $params DYNAMICALLY
call_user_func_array(array($this, $this->_request), array($params));
1-й аргумент: экземпляр Obect, 2-й аргумент: метод для вызова, 3-й аргумент: params
Прежде чем вы сможете проверить, есть ли метод или класс тоже, с помощью:
method_exists()
class_exists()
Приветствия
Вы можете сделать это с помощью переменных переменных , мне это кажется наиболее чистым. Вместо:
call_user_func(array($obj, $method_name), $parameter);
Вы делаете:
$obj->{$method_name}($parameter);