Improve work with references
This commit is contained in:
parent
e4deeb61ba
commit
eb41053c61
|
@ -19,10 +19,14 @@ class AdminerPlugin extends Adminer {
|
||||||
function _applyPlugin($function, $args) {
|
function _applyPlugin($function, $args) {
|
||||||
foreach ($this->plugins as $plugin) {
|
foreach ($this->plugins as $plugin) {
|
||||||
if (method_exists($plugin, $function)) {
|
if (method_exists($plugin, $function)) {
|
||||||
foreach ($args as $key => $val) {
|
switch (count($args)) { // call_user_func_array() doesn't work well with references
|
||||||
$args[$key] = &$args[$key]; // allows modification of parameters
|
case 0: $return = $plugin->$function(); break;
|
||||||
|
case 1: $return = $plugin->$function($args[0]); break;
|
||||||
|
case 2: $return = $plugin->$function($args[0], $args[1]); break;
|
||||||
|
case 3: $return = $plugin->$function($args[0], $args[1], $args[2]); break;
|
||||||
|
case 4: $return = $plugin->$function($args[0], $args[1], $args[2], $args[3]); break;
|
||||||
|
default: trigger_error('Too many parameters.', E_USER_WARNING);
|
||||||
}
|
}
|
||||||
$return = call_user_func_array(array($plugin, $function), $args);
|
|
||||||
if (isset($return)) {
|
if (isset($return)) {
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue