2

ご存知のとおり、配列への挿入と配列からの削除に使用できる関数は4つあります。

  1. array_push()
  2. array_pop()
  3. array_unshift()
  4. array_shift()

array_unshift()との意味は何ですかarray_shift()、私はそれらがこのように名付けられている理由を意味しますか?

4

3 に答える 3

8

それは歴史的です。新しい言語ではおそらく「shift」とは呼ばれなくなりますが、Perlの古い用語にはshiftキーワードが含まれており、その役割は次のとおりです。

[Shift]配列の最初の値をオフにして返し、配列を1短くして、すべてを下に移動します。

@_これは、関数の引数を含む配列でよく使用されshift、一度に1つずつアクセスできるようになります。

PHPは、PerlがまだWebプログラミングに広く使用されていた初期の頃、この用語を単純に採用し、「逆」unshiftを追加してそのままにしました。

もう1つの例はgloblibc glob()関数にちなんで名付けられたです。これらの関数を既存の言語からPHPにアクセスする人に馴染ませることが目的だったと思いますが、10年ほど後を振り返ると、おそらく用語の古さは不十分です。

于 2013-01-01T14:29:48.953 に答える
2

これについての明確な情報源を見つけることはできませんが、同じように動作するシフトレジスタに精通していることが原因だと思います。

PHPが多くを借りているPerlにも同様の関数があります。Perlも他のソースから借りたと思いますが、最終的には、シフトレジスタに似ているため、操作を「シフト」と呼ぶのが論理的であると感じた言語設計者にたどり着きます。

他の言語( JavascriptActionScriptなど)は同じ命名イディオムを使用しますが、他の言語はキュー/デキューなどの他の用語を使用する場合があります-C#を参照してください

于 2013-01-01T14:29:58.907 に答える
0

array_shift()配列の最初の値をシフトオフして返し、配列を1要素短縮し、他のすべての値を下に移動(シフト)します。

于 2013-01-01T14:25:11.967 に答える