php - 检查变量是否存在动态变量名和动态键名和深度
问题描述
将 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";
}
我该怎么做才能使第三个示例有效?我不能使用第一个或第二个示例,因为我不知道数组中有多少子数组。
解决方案
您不能为变量键入括号。
这是代码:
<?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";
}
?>
推荐阅读
- android - Google APIS(驱动器和表格)的新华为设备(无 Google Play 服务)中的 Google 登录替代方案
- java - 比较 2 个数组列表的每个元素 Java
- ios - Charts iOS:如何实现 LineChart 标签的点击识别
- git - 是否可以将 git 中的分离头作为回滚策略?
- powershell - 您可以将私钥嵌入到 PowerShell WinSCP 脚本中吗?
- svelte - 如何添加客户端依赖
- typescript - 玩笑测试用打字稿冻结
- python-3.x - 为什么两个图的均值不分别以 0 和 1 为中心?
- sql - 为什么 FULL JOIN 在 SQL 中表现得像 LEFT JOIN
- sql - 编写查找最常见名字(S)、错误的 SQL 查询