Wie Implementieren einer solchen Call-Center-Funktion in PHP?
Frage
Es sollte wie folgt sein:
function callcenter($func,$value,$position)
{
}
Wenn $ func wird die Funktion aufgerufen werden,
$ value ist der Parameter für $ func,
und $ Position steht für Index von $ value,
zum Beispiel
callcenter('func',1,2)
sollte eigentlich nennen func (null, 1)
callcenter('func',1,3)
sollte eigentlich nennen func (null, null, 1).
Sprich, so dass andere Positionen als null.
Lösung
Sie sind nach call_user_func_array und array_fill
<?php
function callcenter($func, $value, $position)
{
$args = array_fill(0, $position-1, null);
$args[] = $value;
call_user_func_array($func, $args);
}
function example()
{
$args = func_get_args();
var_dump($args);
}
callcenter('example',1,2);
callcenter('example',1,3);
?>
Andere Tipps
In PHP ist es posible eine Funktion, deren Namen zu nennen ist in einem varable gespeichert, so
function callcenter($func,$value,$position)
{
switch ($position)
{
case 1: $func($value); break;
case 2: $func(null, $value); break;
case 3: $func(null, null, $value); break;
}
}
Es könnte eine bessere Möglichkeit, die variable Anzahl von Parametern zu handhaben, aber das sollte die Grundidee zu vermitteln.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow