gpt4 book ai didi

php - 这是 PHP 数组访问的错误吗?

转载 作者:可可西里 更新时间:2023-11-01 00:28:21 27 4
gpt4 key购买 nike

我遇到了这个错误,其中一个数组的元素,如果它的索引是字符串“0”,是不可访问的。

这也不是反序列化的错误,因为这发生在我的代码中而没有调用它。

$arr = unserialize('a:1:{s:1:"0";i:5;}');
var_dump($arr["0"]); //should be 5, but is NULL
var_dump($arr[0]); //maybe this would work? no. NULL

我是不是做错了什么?如何访问数组的这个元素?

最佳答案

是的,它看起来像是一个错误,与 PHP 将字符串自动转换为整数有关。此处提供更多信息:http://bugs.php.net/bug.php?id=43614

var_dump( $arr ); // => array(1) { ["0"]=>  int(5) } 
$arr2["0"]=5;
var_dump($arr2); // => array(1) { [0]=> int(5) }
print serialize($arr2); // a:1:{i:0;i:5;}

看来老版本的 PHP5 并没有在 unserialize 中进行字符串索引到整数索引的转换。

此错误已在 PHP 5.2.5 中报告,并已在 PHP 5.2.6 中修复(请参阅 http://www.php.net/ChangeLog-5.php#5.2.6)。

关于php - 这是 PHP 数组访问的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/316320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com