PHP では `strtr` と `str_replace` をいつ使用する必要がありますか?

Barbara Streisand
リリース: 2024-11-05 00:04:01
オリジナル
308 人が閲覧しました

When should you use `strtr` versus `str_replace` in PHP?

strtr と str_replace を使用する場合?

PHP の strtr 関数と str_replace 関数は両方とも文字列置換を実行しますが、いくつかの機能があります。

最初の違い: 置換順序

strtr は置換ペアを長さによって降順に並べ替えますが、str_replace は定義された順序で置換ペアを処理します。 。これにより、文字列内の複数の部分文字列を置換するときに異なる結果が生じる可能性があります。次の例を考えてみましょう:

<code class="php">$text = 'test string';

echo strtr($text, 'st', 'XY') . "\n";
echo str_replace(['s', 't', 'st'], ['X', 'Y', 'Z'], $text) . "\n";</code>
ログイン後にコピー

これは出力します:

YeXY XYring
YeXY XYring
ログイン後にコピー

最初のケースでは、strtr は最初に長い部分文字列 "st" を置き換えますが、2 番目のケースでは、str_replace が最初に「s」。その結果、最終的な出力は異なります。

2 番目の違い: 置換の優先順位

strtr は長い置換ペアに高い優先順位を与えますが、str_replace は最初に出現した置換ペアに優先順位を与えます。部分文字列の。これにより、複数の部分文字列を置換するときに異なる結果が生じる可能性もあります。次の例を考えてみましょう:

<code class="php">$text = 'ZBB2';
echo str_replace(['1', '2', '3', 'B'], ['A', 'B', 'C', 'D'], $text) . "\n";
echo strtr($text, ['1' => 'A', '2' => 'B', '3' => 'C', 'B' => 'D']) . "\n";</code>
ログイン後にコピー

これは出力します:

ZDDD
ZDDB
ログイン後にコピー

最初のケースでは、str_replace は最初に「B」を「D」に置き換え、次に「BB2」に導きます。 「DD2」に置き換えられます。 2 番目のケースでは、strtr は最初に「B」を「D」に置き換えます。これにより、「ZBB2」が「ZDDB」に置き換えられます。

いつどの関数を使用するか

一般に、strtr は、置換順序が重要ではない単純な文字列置換に適しています。一方、str_replace は、置換の順序が重要な場合や置換の優先順位を制御する必要がある、より複雑な置換に適しています。

以上がPHP では `strtr` と `str_replace` をいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート