isset($ string [" toto"])返回php版本的false或true函数

时间:2014-07-03 08:58:38

标签: php arrays string

在我的客户公司,我发现一段代码非常奇怪......我不明白开发人员想要做什么。我不懂PHP逻辑。

var_dump($string["toto"]);
if(isset($string["toto"])) {
  return TRUE;
}
else{
  return FALSE;
}

$ string是一个字符串,就像“house”。 var_dump($ string [“toto”])返回h,因为toto不是整数,所以它被认为是0,所以它返回房子的第一个字母。

然后,

在PHP 5.3中,isset($string["toto"])返回true

在PHP 5.5中,isset($string["toto"])返回false

有人知道为什么吗? PHP 5.4或PHP 5.5中有关用作字符数组的字符串的内容发生了变化吗?

谢谢:)

1 个答案:

答案 0 :(得分:5)

RTM

  

更新日志

     

5.4.0检查字符串的非数字偏移现在返回FALSE

即,尝试使用字符串索引来访问字符串偏移量是一个错误。现在正确地将其视为错误/不存在的索引。