php 不是索引数组,PHP是否以不同方式(内部)处理数字索引数组?

简而言之,PHP没有非关联数组.

@Sectus在PHP数组的底层实现上发布了一个很好的答案.理解“引擎盖下”发生的事情通常是有益的.但无论它们的底层实现如何,PHP数组都会作为与键关联的值的有序映射(即关联数组)向PHP开发人员公开.总是.

An array in PHP is actually an ordered map. A map is a type that associates values to keys.

PHP arrays can contain integer and string keys at the same time as PHP does not distinguish between indexed and associative arrays.

The key can either be an integer or a string.

数组被数字索引的误解是由于在没有明确指定密钥的情况下为了方便而自动递增整数键的特征.

但是请注意,即使所有键都是整数,也不能保证PHP中的项目存在于例如$arr [0],据我所知,这是任何其他使用索引数组的语言(即假设索引)数组包含至少一个元素,并且基于0).

这不是一个微不足道的区别.依赖于PHP数组的IMHO程序员表现得像索引数组而没有考虑到潜在的后果或对差异的理解*可能会为自己(或未来的维护者)设置奇怪/意外的行为.

*我已经对此进行了限定,因为显然有一些明智的做法是利用类似于索引的方便/数组的PHP语言功能可以带来好处.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值