You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何正确访问包含@等特殊字符的stdClass对象键值

PHP stdClass 特殊命名属性访问方案

你使用的zzcrewssadd->items->item[@0]写法报错有两个核心原因:

  • PHP 变量必须以$为前缀,缺少前缀会被解析为未知常量触发报错
  • 原生 stdClass 对象不支持直接用方括号[]访问属性,且@0属于非标准命名的属性名,既不能直接跟在->后书写,也不能省略引号作为裸常量使用

正确访问方式

方式1:花括号包裹字符串属性名(推荐)

PHP 原生支持用花括号包裹字符串的语法,直接访问非标命名的对象属性:

// 访问@0对应的stdClass对象
$target = $zzcrewssadd->items->item->{'@0'};
// 进一步访问@0对象内的字段,比如获取id值
$id = $zzcrewssadd->items->item->{'@0'}->id;

方式2:转数组后访问

如果更习惯数组操作,可以先将 stdClass 强制转为关联数组,再用字符串键访问:

// 将item层级的stdClass转为关联数组
$itemArr = (array) $zzcrewssadd->items->item;
// 用字符串键访问@0对应的值
$target = $itemArr['@0'];

内容的提问来源于stack exchange,提问作者codejay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 06:33:02