首页 > 解决方案 > 检查变量是否存在动态变量名和动态键名和深度

问题描述

将 isset 与动态变量名和动态键名一起使用的正确语法是什么,而不用大括号写键名。

例子:

$ab[0] = 'test';
$var1="ab";
$var2="[0]";
$var3="0";

//This works
if (isset(${$var1}[0])){
   echo "success";
}

//This works too
if (isset(${$var1}[$var3])){
   echo "success";
}


//But this doesn't.
if (isset(${$var1}$var2)){
   echo "success";
}

我该怎么做才能使第三个示例有效?我不能使用第一个或第二个示例,因为我不知道数组中有多少子数组。

标签: phpmultidimensional-arraydynamicisset

解决方案


您不能为变量键入括号。

这是代码:

<?php
$ab[0] = 'test';
$var1="ab";
$var2="0";
$var3="0";

//This works
if (isset(${$var1}[0])){
   echo "success";
}

//This works too
if (isset(${$var1}[$var3])){
   echo "success";
}


//This works too
if (isset(${$var1}[$var2])){
   echo "success";
}
?>

推荐阅读