2017-08-07 72 views
1

我想檢查一個變量是否存在,如果不存在 - 然後定義它。從數組中檢查isset

$checkarray = array($demo1, $demo2, $demo3); 

foreach ($checkarray as $checkkey) { 
    if (!isset($checkkey)) { 
    $checkkey = 'none'; 
    } 
} 

但我只是得到這個錯誤:*注意:未定義的變量:demo1的(等等...)

這是bascially我嘗試才達到...

if (!isset($demo1)) { 
    $demo1 = 'none'; 
} 

if (!isset($demo2)) { 
    $demo2 = 'none'; 
} 

if (!isset($demo3)) { 
$demo3 = 'none'; 
} 

但它並不漂亮。

任何想法?

乾杯 克里斯

+1

那麼你顯然不能把變量成可能甚至不存在的數組...你可以做什麼,只裝變量_names_或array_keys_來查找數組,然後再循環...但是如果您的輸入已經以數組的形式存在,這會更有意義。 _Variable variables_幫助你執行檢查,如果你需要這個實際變量,而不是數組。 – CBroe

+0

如果你只是想看看價值是否存在,看看[in_array](http://php.net/manual/en/function.in-array.php) – aynber

+0

@CBroe你是對的。變量變量是要走的路。 Thnx – stangerup

回答

1

您的支票陣列使用var名稱,而不是VAR本身。這就是所謂的Variable variable

然後,你可以做這樣的事情:

$checkarray = array('demo1', 'demo2', 'demo3'); 

foreach ($checkarray as $checkkey) { 
    if (!isset($$checkkey)) { 
    $$checkkey = 'none'; 
    } 
} 
+0

非常感謝你 - 它的工作原理! – stangerup