PHPでは、配列に要素を追加することも非常に一般的な操作です。それぞれ、配列の末尾と先頭に要素を追加する方法を見てみましょう。 PHP 内で動作します。配列の挿入操作を実装します。
github の PHP ソース コードにさらに詳細な注釈を付けています。興味があれば、見てスターを付けてください。 PHP5.4のソースコードのアノテーション。追加されたアノテーションは、コミット レコードを通じて確認できます。
array_push 関数は、配列パラメータをスタックとして扱い、渡された変数を配列の末尾にプッシュします。配列の長さは、押し込まれる変数の数に応じて増加します。次のコードには意味のある効果があります:
$array[] = $var;
配列に要素を 1 つだけ追加する必要がある場合は、関数を呼び出す必要がないため、$array[] を使用することをお勧めします。
array_push 関数は比較的単純で、配列をスタックとして扱い、各パラメーターを参照に変換し、参照番号に 1 を加えて配列の末尾に追加します。
内部実装のフローチャートは次のとおりです:
$arr = array(1, 2, 3); array_unshift($arr, 4, 5, 6) // 4 5 6 1 2 3
上記の手順からわかるように、array_unshift の中核となるステップは php_splice 関数です。 array_unshift関数は、php_spliceが実装時に新しいハッシュテーブルout_hashを作成し、まずout_hashに挿入するリストデータを挿入し、その後に元の配列データをout_hashに書き込むことで、配列の前にデータ要素を挿入する機能を実現しています。
実現されたレンダリングは次のとおりです:
今回ソースコードを読む過程で、PHPのハッシュテーブルのデータ構造といくつかのAPIについても勉強し、ハッシュテーブルの知識も少し補いました。 PHP の最下層では双方向リンク リストを使用してハッシュの競合を処理していることを学び、大きな恩恵を受けました。 PHP のデータ構造については、今後詳しく説明する予定です。
限られた文体と限られた知識によるオリジナル記事 記事内に何か間違っている点がございましたら、お知らせください。
この記事がお役に立ちましたら、クリックしておすすめしてください、ありがとうございます^_^
最後に、おまけとして、github の PHP ソース コードにさらに詳細な注釈を付けました。興味があれば、見てスターを付けてください。 PHP5.4のソースコードのアノテーション。追加されたアノテーションは、コミット レコードを通じて確認できます。
その他のソース コード記事については、個人のホームページにアクセスして閲覧を続けてください: hoohack