2017-08-07 53 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