这是......我甚至不知道这是怎么回事.
// var_dump of items before
object(stdClass)[84]
public '75' => object(stdClass)[87]
$items = (array) $items; // Casting unserialized stdClass to array
var_dump($items);
//Result of var dump:
array
'75' =>
object(stdClass)[87]
//Now lets get this item:
var_dump($items[75]); // Error
var_dump($items['75']); // Error
Run Code Online (Sandbox Code Playgroud)
什么?
谢谢.
我认为,您正在使用调试扩展,因此var_dump()输出与标准库不同,属性不能是数字,但$obj->{'75'}没关系。如果您可以通过“是”到达子对象,那么$items->{'75'}您就有一个数字属性。否则你可以尝试print_r($items);查看原始输出,或者检查之后的数组get_object_vars()
<?php
$items = new stdClass();
$items->{'75'} = new stdClass();
$items->{'75'}->{'85'} = new stdClass();
$items = (array) $items; // Casting unserialized stdClass to array
$items_array = get_object_vars($items); // getting object vars as an array.
var_dump($items["75"]); // Error
var_dump($items['75']); // Error
var_dump($items_array['75']); // Works
Run Code Online (Sandbox Code Playgroud)
PHP 问题: #45959
阅读铸造块引用:http://www.php.net/manual/en/language.types.array.php#language.types.array.casting
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |