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.

War es hilfreich?

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
scroll top