gpt4 book ai didi

php - 从对象转换时无法通过数字关联键访问数组元素

转载 作者:搜寻专家 更新时间:2023-10-31 21:00:51 25 4
gpt4 key购买 nike

<分区>

当您将带有数字字段的对象(参见 $obj)转换为数组时,您无法访问它的元素

$obj = new stdClass();
$obj->{"325890"} = "test";

$arr = (Array) $obj;

$key = array_keys($arr)[0];

var_dump($arr); // array (size=1) '325890' => string 'test' (length=4)
var_dump($key); // string '325890' (length=6)

var_dump($arr["325890"]); // null
var_dump($arr[325890]); // null
var_dump($arr[$key]); // null

$arr = unserialize(serialize($arr)); // this fixes that

var_dump($arr["325890"]); // string 'test' (length=4);

当您将数据分配给同一元素时,还会发生一些奇怪的事情:

$arr = (Array) $obj;
$arr[325890] = "test"; // or $arr["325890"] = "test";

var_dump($arr);

array (size=2)
'325890' => string 'test' (length=4)
325890 => string 'test' (length=4)

这是错误还是记录在案的行为?我正在使用 PHP 7.1.2

我在尝试使用数字键访问 JSON 元素时发现了一个小错误。

$items = Array(
"100" => "item",
"200" => "item",
"300" => "item",
"400" => "item",
);

$json = json_encode($items);

$items = (Array) json_decode($json);

var_dump($items[100]); // null

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