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

PHP中如何访问数字命名的对象属性?

解决PHP中数字命名的对象属性访问问题

这问题我之前踩过坑!数字作为对象属性名确实违反了PHP标识符的命名规则(标识符不能以数字开头),所以直接用$query->201609会触发语法错误,而用$query->{201609}得到0是因为PHP把这个数字当成了整数处理,和实际存储的字符串类型属性名不匹配。

正确的访问方式

你需要把数字属性名以字符串形式传入花括号中,这样PHP才能正确识别对应的属性:

// 直接指定字符串属性名
$value = $query->{"201609"};
echo $value; // 输出 130000

循环场景下的动态处理

如果是在foreach循环中动态获取这类属性(比如不确定具体是哪个数字属性名),可以用这两种方式处理:

foreach($yourArray as $query) {
    // 方法1:转换为数组后访问
    $queryArray = (array)$query;
    $value = $queryArray['201609']; // 必须使用字符串键名

    // 方法2:遍历对象的所有属性
    foreach(get_object_vars($query) as $key => $val) {
        // $key 就是字符串形式的"201609"
        echo $val; // 输出 130000
    }
}

为什么之前的写法会失效?

对象的属性名本质都是字符串类型,当你用$query->{201609}时,PHP会把201609当作整数处理,和实际存储的字符串属性名"201609"不匹配,导致无法找到对应属性,最终返回默认值0。用字符串包裹数字后,就能和实际的属性名完全匹配,从而正确获取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:53:04