2012-08-14 42 views
0

所以我有這段代碼,它的一部分是一個表單,並且所有的字段都是絕對必需的。這是數組和isset的正確使用嗎?

我只是無法找到明確的文檔,我需要驗證一切。

我會這樣做嗎?

$foo = $_POST['foo']; 
$bar = $_POST['bar']; 
$lorem = $_POST['lorem']; 
$ipsum = $_POST['ipsum']; 

$isSet = array($foo, $bar, $lorem, $ipsum); 

if(isset($isSet)) { /* Do the stuff */ } 

還是還有更好的辦法嗎?我真的不想做

if(isset($foo) && isset($bar) && isset($lorem)........ 

,因爲我已經得到了約12場所需

回答

2

記住,如果你有一個空字符串isset將返回true。因此,技術上

isset($_POST['foo']) 

如果FOO用空值傳遞將返回true:

foo=&bar=&...etc. 

此外,

isset(array()) 

返回true;

如果「」是不是爲那些變量的一個有效的值,你將要做到以下幾點:

$requiredFields = array('foo', 'bar', 'lorem', 'ipsum'); 

$allValid = true; 

foreach ($requireFields => $fieldName) { 
    if (isset($_POST[$fieldName]) && $_POST[$fieldName] != "") { 
     $allValid = $allValid && true; 
    } else { 
     $allValid = $allValid && false; 
    } 
} 

if ($allValid) { 
    //...success... 
} else { 
    //...failed... 
} 

基本上只是檢查變量傳遞,也該變量沒有被設置爲「」。

希望有所幫助。

+0

實際上,謝謝! – Xhynk 2012-08-14 23:29:11