众所周知,有四个函数可用于插入和删除数组:
- array_push()
- 数组弹出()
- array_unshift()
- 数组移位()
和是什么意思,我的array_unshift()
意思array_shift()
是为什么它们被这样命名?
众所周知,有四个函数可用于插入和删除数组:
和是什么意思,我的array_unshift()
意思array_shift()
是为什么它们被这样命名?
这是历史的。在较新的语言中,我们可能不再称其为“shift”,而来自 Perl 的旧术语包括shift关键字,其作用是:
[Shift] 关闭数组的第一个值并将其返回,将数组缩短 1 并将所有内容向下移动。
这通常与@_
包含函数参数的数组一起使用,并且shift
一次提供对它们的访问。
PHP,在 Perl 仍然广泛用于 Web 编程的早期,只是简单地采用了这个术语,添加了“反向”unshift
并离开了它。
另一个例子是,它以libc函数glob
命名。我想其目的是让那些从现有语言转向 PHP 的人熟悉这些功能,但十年后回想起来,也许这些术语已经过时了。 glob()
我找不到明确的来源,但我的猜测是它源于对移位寄存器的熟悉,它的行为方式相似。
您会在 Perl 中找到类似的函数,PHP 从中借鉴了很多。我猜 Perl 也借鉴了其他来源,但最终,您会遇到一位语言设计者,他认为将操作称为“移位”是合乎逻辑的,因为它类似于移位寄存器。
其他语言使用相同的命名习惯,例如Javascript和ActionScript,但其他语言可能使用其他术语,例如 queue/dequeue - 请参阅C#
array_shift()
将数组的第一个值移开并返回,将数组缩短一个元素并向下移动(移位)所有其他值。