ホームページ > バックエンド開発 > PHPチュートリアル > [PHP ソース コードの読み取り]explode 関数と implode 関数、explodeimplode_PHP チュートリアル

[PHP ソース コードの読み取り]explode 関数と implode 関数、explodeimplode_PHP チュートリアル

WBOY
リリース: 2016-07-12 08:52:20
オリジナル
1096 人が閲覧しました

[PHPソースコードの読み方]explode関数とimplode関数、explodeimplode

explode関数とimplode関数は、パラメータを取得した後に特定の文字に従って文字列を分割したり、パラメータの結果を使用したりするなど、主に文字列配列の操作に使用されます。配列 文字が結合されて文字列出力になります。これら 2 つの関数は PHP でよく使用されるため、その原理を理解する必要があります。

爆発する

リーリー

各要素は文字列の部分文字列であり、境界点として文字列 $delimiter で区切られます。

$制限

$limit が設定されており、それが正の数である場合、返される配列には最大で $limit 要素が含まれ、最後の要素には $string の残りが含まれます。

$limit が負の数の場合、最後の -$limit 要素を除くすべての要素を返します。

$limitが0の場合は1として扱われます。

$区切り文字

$delimiter が空の場合、関数は FALSE を返します。区切り文字が文字列内になく、$limit が負の数の場合は、空の配列が返されます。

コアソースコード

リーリー

特殊な状況を処理し、変数を初期化した後、次のステップのために php_explode/php_explode_negative_limit 関数を呼び出します。以下はphp_explode関数のソースコードです

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_explode_negative_limit も php_implode と同様の操作です。分離された文字列を見つけた後、add_next_index_string 関数を呼び出して、limit + 見つかった文字列を return_value 配列に追加します。

爆裂

リーリー

一次元配列の値を文字列に変換します

implode関数は2つのパラメータオーダーを受け取ることができます。

コアコード

リーリー

基礎となる実装では、implode 関数がパラメーターを処理した後、変換のために php_implode 関数を呼び出します。

php_implode

リーリー

php_implode 関数が配列の各要素を走査し、その型を決定し、必要な型変換を実行してから、smart_str_appendl 関数を呼び出して値を文字列に追加していることがわかります。 Smart_str_appendl は、implode 実装コードのコア関数です。

smart_str_appendl

リーリー

smart_str_appendl_ex は主に memcpy 関数を呼び出して文字列をコピーします。

限られた文体と限られた知識によるオリジナル記事 記事内に何か間違っている点がございましたら、お知らせください。

この記事がお役に立ちましたら、ぜひお勧めください。ありがとうございます^_^。

PHP ソースコードを読むためのその他の記事:

【PHPソースコード読み込み】strlen関数

[PHPソースコードの読み方] strpos、strstrとstripos、stristr関数

www.bkjia.com本当http://www.bkjia.com/PHPjc/1127592.html技術記事 【PHPソースコード読み込み】explode関数とimplode関数、explodeimplodeexplode関数とimplode関数は主に、パラメータを取得した後に特定の文字に従って文字列を分割するなど、文字列配列の操作に使用されます...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート