加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – isset()从一个字符串变量返回true,该变量作为带有任何键

发布时间:2020-12-13 18:27:49 所属栏目:PHP教程 来源:网络整理
导读:我遇到这样的问题: $area="Dhaka";isset($area); //returns true which is OKisset($area['division']); //returns true why?// actually,any array key of area returns trueisset($area['ANY_KEY']);//this is my question 1isset($area['division']['zil
我遇到这样的问题:
$area="Dhaka";

isset($area); //returns true which is OK

isset($area['division']); //returns true why?

// actually,any array key of area returns true

isset($area['ANY_KEY']);//this is my question 1

isset($area['division']['zilla');//now it returns false. 

//as I know it should returns false but why previous one was true.

现在,如果我这样做:

$area['division'] = "Dhaka";
isset($area); // returns true which is OK
isset($area['division']); // returns true it's also OK
isset($area['ANY_KEY']); // returns false. I also expect this

isset($area['division']['ANY_KEY']); // returns true why? question #2

基本上我的两个问题都是一样的.

有谁能解释一下?

与现有的每种编程语言一样,字符串存储为字符数组.

如果我做了:

$area = "Dhaka";
echo $area[0];

它会返回D.

我还可以通过以下方式回显整个字符串:

echo $area[0].$area[1].$area[2].$area[3].$area[4];

PHP will also type juggle a string into 0以仅接受整数的方式传递.

通过这样做:

echo $area['division'];

你基本上会这样做:

echo $area[0];

得到D.

这就是为什么isset($area [‘division’])返回一个真值.

为什么$area [‘foo’] [‘bar’](又名$area [0] [0])不起作用?因为$area只是一个单维数组.

在处理可能是字符串或数组的变量时处理此问题的最佳方法是在尝试将变量视为数组之前使用is_array()进行测试:

is_array($area) && isset($area['division'])

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读