2013-10-08 50 views
0

HTML表單將空值作爲空字符串發送。我想讓它們爲空:更改函數內部的函數參數

function dummy($arg1, $arg2, ... $argN) 
{ 
    if(!$arg1) $arg1 = null; 
    if(!$arg2) $arg2 = null; 
    ... 
    if(!$argN) $argN = null 

} 

這很醜陋。我想是這樣的:

function dummy($arg1, $arg2, ... $argN) 
{ 
    nullEmptyArguments(); 
    var_dump($arg1); //null 
} 
+3

爲什麼設置參數爲空?如果它們在評估爲false時僅設置爲null,那麼只需檢查條件(!$ arg1)就等同於檢查,設置爲null,然後檢查null。 –

+0

這不是您通常需要解決方案的問題。聽起來你應該以不同的方式在你的函數內部構造你的代碼。做你正在做的事真的很沒有道理。 – deceze

回答

1

使用功能get_defined_vars()讓所有定義的變量,並遍歷它們並重新設置他們:

function dummy($arg1, $arg2, $argN) 
{ 
    foreach (get_defined_vars() as $k => $v) $$k = $v ?: null; 
    // your logic 
} 

dummy(1, '0', ''); # $arg2 & $argN will be set to NULL 
+0

從$ $$的好處,因爲$ v不起作用。但是&$? – jscripter

+0

@BubuDaba:我不明白什麼不適用'$ v'?你用'&$'來表示什麼?你想通過參考傳遞什麼? –

+0

哦,我如果'虛擬($ A,$ B,$ C)的意思',改變變量 – jscripter