|
|
|
| Есть класс ядра.
Интересует функция exec_handler. Она вызывает метод $func класса $handler, с параметрами $params.
class kernel {
function kernel() {
return $this;
}
function exec_handler($handler, $func, $params) {
global $$handler;
return $$handler->$func($params);
}
}
|
Так вот, проблема в этих самых $params.
Как мне передать в функцию $func несколько параметров (неизвестное количество)?
Я даже не знаю уже что и думать. пробовал с exec() - не выходит. $$params передаёт переменную с именем, записанным в $params, которая, естесственно, не существует.
Пробовал передавать exec_handler($handler, $func, array $params).
Вобщем, интересует решение проблемы, но чтобы в $func передавалось именно несколько параметров, а не, например, массив. | |
|
|
|
|
|
|
|
для: neudor
(18.09.2007 в 09:15)
| | может я и тугодум, но мне непонятно, приведите если можно пример параметров, а насчет массива - array($params) | |
|
|
|
|
|
|
|
для: bronenos
(18.09.2007 в 09:24)
| | Короче где-то может быть вызвано
$kernel->exec_handler('templater', 'convert', array($str1, $str2) )
|
и это должно привести к вызову
$templater->convert($str1, $str2)
|
Если что-то ещё непонятно - пишите. | |
|
|
|
|
|
|
|
для: neudor
(18.09.2007 в 09:30)
| |
class kernel {
function kernel() {
return $this;
}
function exec_handler($handler, $func, $params) {
global $$handler;
$param = array();
foreach ($params as $p) $param[] = '"'.$p.'"';
$param = join(", ", $param);
eval('return $'.$handler.'->'.$func.'('.$param.');');
}
}
|
лучше не могу вспомнить как | |
|
|
|
|
|
|
|
для: bronenos
(18.09.2007 в 09:56)
| | ну вроде должно работать. Вечером дома попробую.
А без "eval" никак не обойтись? | |
|
|
|
|
|
|
|
для: neudor
(18.09.2007 в 09:15)
| | Вот, может быть пригодится.. Там уж додумаете, как использовать.
<?php
function func()
{
$args = func_get_args();
return implode(' ', $args);
}
echo func('text', 'test', 'text');
?>
|
| |
|
|
|