前回の記事では配列に要素を追加するPHP関数を紹介しましたが、もちろん配列から要素を削除する関数もあります。 array_pop と array_shift は、配列の先頭または末尾から要素を削除するだけです。ソース コードを読んだ後、これら 2 つの関数の実装では、同じ関数 _phpi_pop を呼び出して、配列から配列要素を削除する関数を実装していることがわかりました。したがって、解釈の際には、これら 2 つの機能について一緒に説明します。
github の PHP ソース コードにさらに詳細な注釈を付けています。興味があれば、見てスターを付けてください。 PHP5.4のソースコードのアノテーション。追加された注釈は、コミット レコードを通じて表示できます。
array_pop 関数は、配列の最後の要素をポップして返し、配列の長さを 1 つ減らします。配列が空の場合は NULL を返します。
配列の先頭にあるユニットを配列の外に移動して結果として返し、配列の長さを 1 つ減らし、すべての数値キーの値を 0 からカウントし始めるように変更します。一方、テキスト キーの値は変わらないまま。
次のコードは、array_pop と array_shift の使用方法を示しています
リーリーどちらの関数も _phpi_pop 関数を呼び出します。違いは、_phpi_pop 関数を呼び出すときに渡される 2 番目のパラメーター off_the_end が 1 の場合、それは array_pop であり、それ以外の場合は array_shift です。以下は、_phpi_pop 関数を実行するための詳細な手順です:
リーリー関数実行のプロセスは次のフローチャートで説明できます:
アレイポップ
この関数を呼び出す際に array_pop と array_shift によって実行される手順は似ています:
1. ポインタを移動する場合、前者は配列の末尾に移動し、後者はポインタを配列の最初のユニットに移動します。
2. 削除操作が完了したら、前者は次の数値インデックスの位置を変更するだけで済みますが、後者は配列の添字をリセットする必要があります。
まとめ
限られた文体と限られた知識によるオリジナル記事 記事内に何か間違っている点がございましたら、お知らせください。
この記事がお役に立ちましたら、クリックしておすすめしてください、ありがとうございます^_^
最後に、おまけとして、github の PHP ソース コードにさらに詳細な注釈を付けました。興味があれば、見てスターを付けてください。 PHP5.4のソースコードのアノテーション。追加された注釈は、コミット レコードを通じて表示できます。
その他のソース コード記事については、個人のホームページにアクセスして閲覧を続けてください: hoohack
http://www.bkjia.com/PHPjc/1130144.html