所以我有这个数组:
$myArray = array('myVar', 'myVar75', 'myVar666');
我如何isset
检查名为$myVar
,$myVar75
,$myVar666
的变量是否存在?
将数组的值作为变量名称传递给isset()
函数的最明智的方法是什么?
答案 0 :(得分:1)
只需使用variable variables通过简单的foreach循环测试每个元素:
示例:
$myVar666 = 1; // for example's sake
$myArray = array('myVar', 'myVar75', 'myVar666');
foreach($myArray as $element) {
if(isset(${$element})) {
echo $element, ' is already set';
} else {
echo $element, ' is not yet set';
// if not set, do something here
}
}
应该产生这样的东西:
$myVar is not yet set
$myVar75 is not yet set
$myVar666 is already set
答案 1 :(得分:1)
foreach($myArray as $value){
if(isset($$value)){
echo "$value is exist with value : '".$$value."'";
}
else{
"$value is not exist";
}
}
答案 2 :(得分:1)
你可以通过增加额外的$来做到这一点,如下所示:
$myArray = array("myVar", "myVar75", "myVar666");
if (isset($$myArray[0])) {
//Content
}
这将检查是否设置了$ myVar。相应地将索引更改为myArray。
考虑PHP的实现(称为变量变量)的方法是字符串的内容在美元符号之后:
$ hi ="你好&#34 ;;
但是如果你把$$ hi,那么$ hi将替换为字符串的内容,所以它变成了$ hello。
$ hi ="你好&#34 ;;
$ hello ="问候&#34 ;;
如果你把$$$ hi,那么$ hi会被替换掉,因此它会变成$$你好,并且$ hello被替换掉,以便它成为$ greetings。