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

PHP中:使数组自动分配下一个数字键的$key值是什么?

结论:不存在这样的$key值

PHP里$arr[] = $value的逻辑是自动生成下一个可用的数字键(规则是取当前数组中最大的数字键加1,若没有数字键则用0),而$arr[$key] = $value是强制将值绑定到指定的$key上,这两种行为的本质逻辑完全不同,没有任何一个$key值能让两者的执行结果完全一致。

为什么你试的NULL和空字符串没用?

  • 当$key为NULL时,PHP会自动把它转换为空字符串"",所以$arr[NULL] = $value实际等价于$arr[""] = $value,会生成一个空字符串类型的键,和$arr[]生成的数字键完全不是一回事。
  • 直接用空字符串""当$key,同样是创建字符串类型的键,和自动递增的数字键逻辑无关,结果自然不一致。

实现需求的正确方式

你的分支判断思路是可行的,直接通过判断$key是否为NULL来选择不同的赋值方式,示例代码:

public function addValue($value, $key = null) {
    if ($key === null) {
        $this->_arr[] = $value;
    } else {
        $this->_arr[$key] = $value;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:02:07