trim 一連の関数は、文字列の先頭と末尾にあるスペースやその他の文字を削除するために使用されます。 ltrim 関数は文字列の先頭の文字のみを削除し、rtrim 関数は文字列の末尾の文字のみを削除します。
string trim ( string $str [, string $character_mask = " tnrx0B" ] )
character_mask デフォルトは「tnrx0B」およびその他の空白文字です。
文字の範囲を指定するには、.. を使用します。ここで、「..」の左側と右側は正当な範囲値のペアであることに注意してください。不正な値が渡された場合、エラーが報告されます。
まず通常の使用方法を見てみましょう
$str = 'hello..';$new_str = trim($str, '.'); // 结果是hello
かなり奇妙な結果が得られました。ここで報告されるエラーは、PHP が .. の左側と右側を範囲値とみなし、ここで '..' の左側が文字 '.' であると内部的に右側が欠落している範囲値であるとみなしているためです。境界。
rreee
2番目のパラメーターは法的境界値を使用します。この記事では主に、trim 関数について分析します。 ltrim 関数と rtrim 関数は、trim 関数に似ています。次に、php_do_trim は php_trim を呼び出して関数を実装するため、trim 関数のコア関数は php_trim 関数になります。実行手順は次のとおりです。1. what の値に従ってフィルタリングされた文字を保存するマスク配列を設定します
2. 文字列の先頭でフィルタリングされる文字をフィルタリングします
3. 文字をフィルタリングします。php_trim 関数実行のフローチャートは次のとおりです:
ソースコード解釈
php_trim 関数は、最初に php_charmask の形式にフィルター文字を設定しようとします。 Mask[char] = 1、これはハッシュ配列であり、後で判断するために使用できます。 2 番目のパラメーターが範囲値の場合、memset 関数が呼び出され、マスク配列に値が割り当てられます。
モード変数を使用してフィルタリングの種類を決定する場合、ここでは複数の判定条件の代わりに AND 演算が PHP 内で使用されます。コードのこの部分は次のとおりです:
$str = 'hello...';$second_str = trim($str, '...'); // 报错
1 && 1 == 1 左側はフィルタリングする必要があります
2 && 1 == 0 左側はフィルタリングする必要はありませんフィルタリングされる
3 && 1 == 1 左側はフィルタリングが必要です
1 && 2 == 0 右側はフィルタリングする必要はありません2 && 2 == 1 右側はフィルタリングする必要があります
3 && 2 == 1 右側をフィルタリングする必要があります
このようなビット演算を使用すると、プログラムの効率が向上し、コードがより簡潔で読みやすくなります。
概要
この関数のソース コードを読み、まず C 言語でキーと値のペアの配列を作成する必要があり、キー値が 1 文字の場合、unsigned char 型を使用できることを学びます。同様の文字を構築できるように、配列の添字としてマップされた配列を添字として使用します。
2 つ目は、ビット演算を使用するとプログラムの効率とコードの可読性が向上するということです。
限られた文体と限られた知識によるオリジナルの記事です。記事内に何か間違っている点があれば、お知らせください。
この記事がお役に立ちましたら、クリックしておすすめしてください、ありがとうございます^_^
より良い記事を書くために著者をサポートするためのヒント、ありがとう!
著者へのチップ
より良い記事を書くために著者をサポートするためのチップ、ありがとう! hoose支払い方法を選択してください
著著者について:hoohack