从数组中检查isset
问题描述:
我想检查一个变量是否存在,如果不存在 - 然后定义它。从数组中检查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';
}
但它并不漂亮。
任何想法?
干杯 克里斯
答
您的支票阵列使用var名称,而不是VAR本身。这就是所谓的Variable variable
然后,你可以做这样的事情:
$checkarray = array('demo1', 'demo2', 'demo3');
foreach ($checkarray as $checkkey) {
if (!isset($$checkkey)) {
$$checkkey = 'none';
}
}
+0
非常感谢你 - 它的工作原理! – stangerup
那么你显然不能把变量成可能甚至不存在的数组...你可以做什么,只装变量_names_或array_keys_来查找数组,然后再循环...但是如果您的输入已经以数组的形式存在,这会更有意义。 _Variable variables_帮助你执行检查,如果你需要这个实际变量,而不是数组。 – CBroe
如果你只是想看看价值是否存在,看看[in_array](http://php.net/manual/en/function.in-array.php) – aynber
@CBroe你是对的。变量变量是要走的路。 Thnx – stangerup