ホームページ  >  記事  >  バックエンド開発  >  PHP のexplode() 関数をソースコードから理解する_PHP チュートリアル

PHP のexplode() 関数をソースコードから理解する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:34:01732ブラウズ

特定の文字または文字列に基づいて配列を配列に分割する必要がある場合、explode() 関数は非常に便利ですが、explode() がどのように機能するかご存知ですか?文字列のインターセプトの問題により、Explode が再割り当てスペースを消費することは避けられません。

リーリー

別の段落を見てみましょう:

リーリー

以下は、explode の 3 番目のパラメーター制限に基づく呼び出しの分析です。条件は、explode の最後の 3 行に対応しますが、制限条件は異なります。注: 制限がデフォルトに設定されている (渡されていない) 場合、そのデフォルト値は LONG_MAX であり、これはブランチ 1 の場合です。

1、制限 > 1:

php_explode メソッドを呼び出します。このメソッドは ext/standard/string.c にもあり、explode 実装のすぐ上に表示されます (そのため、この関数でこのファイルからメソッドを見つけるのは非常に便利です。列はほとんどありません。例外はすべて関数のすぐ上にあります ^_^)。

リーリー

2、制限

php_explode_negative_limit メソッドを呼び出します:

リーリー

3. 制限 = 1 または制限 = 0:

最初と 2 番目の条件がすべて満たされていない場合は、このブランチに入ります。このブランチは、ソース文字列を出力配列、explode('|', 'avc|sd', 1) またはexplode('|') に入れるだけです。 , 'avc|sd', 0) は array(0 => 'avc|sd');

を返します リーリー

見てわかるように (割り当てられたスペースは含まれません)、limit>1 の場合、効率は O(N) [N は限界値]、limit

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752366.html技術記事配列を特定の文字または文字列に基づいて配列に分割する必要がある場合、explode() 関数は非常に便利ですが、explode() がどのように機能するかご存知ですか?文字列のインターセプトに関する質問...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。