它應該是這樣的:如何在PHP中實現這樣的呼叫中心功能?
function callcenter($func,$value,$position)
{
}
其中$ FUNC是函數被調用,
$值是$ FUNC參數,
和$位置代表的指數$值,
例如,
callcenter('func',1,2)
實際上應該叫FUNC(NULL,1)
callcenter('func',1,3)
實際上應該調用func(null,null,1)。說,留下其他職位爲空。
它應該是這樣的:如何在PHP中實現這樣的呼叫中心功能?
function callcenter($func,$value,$position)
{
}
其中$ FUNC是函數被調用,
$值是$ FUNC參數,
和$位置代表的指數$值,
例如,
callcenter('func',1,2)
實際上應該叫FUNC(NULL,1)
callcenter('func',1,3)
實際上應該調用func(null,null,1)。說,留下其他職位爲空。
你call_user_func_array後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);
?>
正如我所想的那樣,有一種比我的switch語句更好的方法。我將提交這個供將來參考。 +1 – Tom 2009-09-23 05:30:08
在PHP是更多鈔票,以呼叫姓名被存儲在一個varable的函數,因此
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;
}
}
有可能是一個更好的辦法來處理可變數量的參數,但應該得到的基本思路跨越。
這聽起來像一個重構可能是爲了。你想達到什麼目的? – derobert 2009-09-23 05:40:36
進行動態調用。 – omg 2009-09-23 05:56:04