/ / PHPプラクティス:文字列の比較

PHPプラクティス:文字列の比較

PHPは、情報処理を重視しています。言語の構文は、フル機能の比較関数、文字列処理、および比較演算子のセットで表されます。

php文字列の比較

どのアルゴリズムも一連の選択であり、アクション。しかし、選択をする前に、何かを何かと比較する必要があります。文字列は、アルゴリズムを制御するための最も容量が大きく、効率的で実用的なメカニズムです。文字列はデータ表示の変形です。そして、データはあらゆるアルゴリズムの主な「懸念」です。

従来の比較アクションロジック

一般的に、動的型付け言語はそうではありませんデータに特別な違いがあります。たとえば、PHPでは、文字列と数値の比較に大きな違いはありません。数値は、数値と点のみを含み、その形式(数学表記)で数値を表すために使用されない単一の文字がない場合、文字列でもあります。

コンテンツの場合、gettype()関数が「integer」または「double」を指定しても、番号は不要な質問や隠れたエラーなしで文字列と自動的にマージされます。

2つの文字列を比較するphp

ただし、この機能の使用には違いがありますis_int()およびis_numeric()。 1つ目は、パラメーターが整数のみの場合に当てはまり、2つ目は、任意の数値または数値文字列の場合に当てはまります(変数のタイプは「文字列」ですが、数学表記で提供されるすべてのものが含まれます)。

この簡単な例は、PHPの場合のように良い例です。文字列比較演算子( "=="、 "==="、 "!="、...)は、多くの驚きを与える可能性があります。変数はタイプを変更できます。変数は必ずしも数値ではありませんが、ほとんどの場合、文字列に変換できます。最後の手段として、それは空の文字列になります。

php文字列比較演算子

これに基づいて、PHPの文字列比較関数が群を抜いて最も人気があります。どちらを選択するかは開発者次第です。正規表現まで利用できるオプションはたくさんあります。

利用可能な機能の境界

2つの文字列を比較するPHPは、関数をうまく「実行」しますstrpos()は、最も安価で、確実で、最も実用的なオプションです。この関数の結果が数値の場合、1つの文字列が別の文字列と一意に等しいか、1つの文字列が別の文字列に含まれています。

根本的に反対ですが、絶対的に正しいアプローチは、正規表現の使用です。

著者の例は写真ではありません

関数呼び出しの場合$ cResult =scCheckFileName($ cStr)は「true」を返します。これは、文字列がWordファイルの名前であることを意味します。 「.docx」拡張子のバリエーションは1つだけで、名前には文字は含まれません。文字、数字、記号「_」、「-」のみです。

関数は他に簡単に変換できますファイルの種類:$ cPtr = "/ ^([a-zA-Z ... 0-9 -_> [4,239]])u"。文字列をチェックするこのオプションは、アップロードされる範囲をhtml、js、css、..に拡張します(たとえば、PHPでは、文字列の比較は「入力エラーの可能性が1つもない状態でファイルをサーバーにアップロードするために」適用されます)。

strpos()とpreg_match()の使用-極端。それらは、用語比較の問題に直接関係していません。しかし、アルゴリズムの問​​題は、信頼できる正しい結果を達成するためにすべての可能性を使用して、スタイルの組み合わせを適用することの問題です。

PHP機能:文字列の比較

言語対文字列の兵器庫はだけではありません純粋な比較機能だけでなく、直接検索または置換との組み合わせもあります。後者は必ずしも行の変更につながるとは限らないため、アクションは必ずしも比較と一致する必要はありません。多くの場合、アルゴリズムの1つまたは別のブランチを選択する必要があります。

通常のPHPバージョン:文字列の比較は、int strcmp(s1、s2)関数によって実行されます。

関数の結果:

  • 0-文字列は等しい;
  • -1-最初の行が2番目の行よりも小さい。
  • 1-最初の行が2番目の行よりも大きい。

実際には、これは最初のものが入ることを意味します文字列を2番目に挿入し、そこからPHP関数(文字列比較)が決定を下します。 strpos()のより限定されたバージョン。後者の場合、オカレンスの位置を知ることができるためです。

strcmp()関数では大文字と小文字が区別されます。大文字と小文字を区別しない方法で文字列を比較する必要がある場合、PHPはstrcasecmp()の使用をお勧めします。構文は同じです。

実際には、すべての人と一緒に作業する必要はありません。文字列ですが、その一部のみです。これを行うために、PHP関数セット(文字列比較)にはstrncmp(s1、s2、N)が含まれています。 3番目のパラメーターは、Nバイトのみの比較を実行するように指示します。結果はstrcmp()と同じです。

配列、文字列、比較

ほとんどの場合、データは文字列として表されます。配列、オブジェクト、または情報構造を検討する場合、これらは単純な文字列構造の単純な異なる組み合わせです。

php文字列比較関数

文字列配列と文字列は補完的な方法で提示されます。 implode(array、symbol)関数を使用して、配列を文字列に変換します。次に例を示します。$ margins1 = implode( "、"、$ style-> getInnerMargin()); ...アルゴリズム/ユーザーの作業...; $ margins2 = implode( "、"、$ style-> getInnerMargin())を使用すると、すべてのオブジェクトの位置を位置文字列にマージできます。

その後、PHP文字列の比較を行うことができます1回:$ check = strcmp($ margins1、$ margins2)そして、アルゴリズムまたはユーザーが何かを変更したかどうかを確認します。通常の方法で比較を実行する場合は、配列の要素を反復処理する必要があります。時間がかかり、面倒に見えます。

オブジェクトと文字列

PHP(文字列比較)のさらに壮観な使用法は、オブジェクト指向のアイデアを通じて実現できます。

オブジェクトの現代的な理解プロパティとメソッドがあることを前提としています。前者は通常、数値、文字列、配列、およびその他のオブジェクトで表されます。後者には、文字列への書き込み(put)と文字列からの復元(get)のメソッドが含まれることがよくあります。

配列とは異なり、オブジェクトはそのプロパティと他のオブジェクトと相互作用します。オブジェクトは、そのプロパティがアルゴリズム、プログラム全体にとって実際の意味を持っているという点で「有能」です。

PHPの文字列と数値の比較

この瞬間は、必要な情報のみを文字列に記録するように記録し、文字列から復元するときに、すべての作業プロパティを目的の状態に復元します。通常、どのオブジェクトにも、不可欠で機能している(一時的な)情報があります。このアイデアの実装により、メモリ、ディスクスペース、データベースレコードを節約できるだけでなく、より単純で正確な方法で文字列を比較することもできます。

構文とセマンティクス

PHPは動的に開発されており、その機能は両方とも文字列の比較と処理の両方の観点から、常に改善されています。ただし、開発者が重心をセマンティクスにシフトすることを妨げるものは何もありません。

間違いなく、機能は良いですが、使用は、コードのセマンティック部分、オブジェクトに転送できます。アルゴリズムがオブジェクトの相互作用のシステムとして提示される場合、単純なシーケンシャルで古典的なスタイルの一連の比較やアクションよりもはるかに見栄えがします。

気に入った点 -
0
人気の投稿
精神的な開発
食べ物
うん