explode関数とimplode関数は、パラメータを取得した後に特定の文字に従って文字列を分割したり、パラメータの結果を使用したりするなど、主に文字列配列の操作に使用されます。配列 文字が結合されて文字列出力になります。これら 2 つの関数は PHP でよく使用されるため、その原理を理解する必要があります。
各要素は文字列の部分文字列であり、境界点として文字列 $delimiter で区切られます。
$limit が設定されており、それが正の数である場合、返される配列には最大で $limit 要素が含まれ、最後の要素には $string の残りが含まれます。
$limit が負の数の場合、最後の -$limit 要素を除くすべての要素を返します。
$limitが0の場合は1として扱われます。
$delimiter が空の場合、関数は FALSE を返します。区切り文字が文字列内になく、$limit が負の数の場合は、空の配列が返されます。
特殊な状況を処理し、変数を初期化した後、次のステップのために php_explode/php_explode_negative_limit 関数を呼び出します。以下はphp_explode関数のソースコードです
実装では、add_next_index_stringlを呼び出して、取得した各文字列を配列return_valueに追加します。 add_next_index_string は、この関数のコア関数です。
リーリーadd_next_index_stringl 関数は、zend_hash_next_index_insert 関数を呼び出して、配列に str を挿入します。 php_explode_negative_limit 関数のソースコードを見てみましょう
php_explode_negative_limit も php_implode と同様の操作です。分離された文字列を見つけた後、add_next_index_string 関数を呼び出して、limit + 見つかった文字列を return_value 配列に追加します。
一次元配列の値を文字列に変換します
implode関数は2つのパラメータオーダーを受け取ることができます。
基礎となる実装では、implode 関数がパラメーターを処理した後、変換のために php_implode 関数を呼び出します。
php_implode 関数が配列の各要素を走査し、その型を決定し、必要な型変換を実行してから、smart_str_appendl 関数を呼び出して値を文字列に追加していることがわかります。 Smart_str_appendl は、implode 実装コードのコア関数です。
smart_str_appendl_ex は主に memcpy 関数を呼び出して文字列をコピーします。
限られた文体と限られた知識によるオリジナル記事 記事内に何か間違っている点がございましたら、お知らせください。
この記事がお役に立ちましたら、ぜひお勧めください。ありがとうございます^_^。
PHP ソースコードを読むためのその他の記事:
【PHPソースコード読み込み】strlen関数
[PHPソースコードの読み方] strpos、strstrとstripos、stristr関数