Непонятный участок кода PHP

Рейтинг: 1Ответов: 2Опубликовано: 07.10.2014

Здравствуйте!

Кто поможет разъяснить следующий участок кода:

call_user_func_array(array($this->redis, 'zunionstore'), $args);

$usersActivity = $this->_activity($usersKey, $num, $before, $after);
return $usersActivity;

В данном примере не понятно, что делает call_user_func_array, почему первый аргумент массив данных, а не имя вызываемой функции.

$args // Array;
$this->redis // Object $this->redis = new Redis();
zunionstore // Не понятно

Ответы

▲ 2Принят

Массив, потому что вызывается метод $this->redis->zunionstore(). Смотрите 3-й пример на стр. Callbacks.

Если указать просто имя функции (напр., strlen), то PHP искал бы такую функцию в глобальной области.

▲ 1
call_user_func_**array**()

так внимательно всмотритесь в название функции :)

либо откройте мануал http://php.net/manual/ru/function.call-user-func-array.php