PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのstrncmp()関数とは?使い方とサンプルコードを解説

PHPのstrncmp()関数は、2つの文字列の先頭から指定した文字数(n文字)だけを比較するために使用される組み込み関数です。

注意:この関数は大文字と小文字を区別します。「A」と「a」は異なる文字として扱われるため、比較結果に影響します。

構文

strncmp(str1, str2, len)

パラメータ

  • str1 − 比較対象となる1つ目の文字列

  • str2 − 比較対象となる2つ目の文字列

  • len − 比較に使用する文字数(先頭から何文字を比較するか)

戻り値

strncmp()関数は、比較結果に応じて以下の整数値を返します。

  • 0 − 2つの文字列が等しい場合

  • 0より小さい値(<0) − str1がstr2より小さい場合

  • 0より大きい値(>0) − str1がstr2より大きい場合

使用例1:基本的な比較

以下はstrncmp()関数を使用した基本的な例です。

<?php
   echo strncmp("Demo text!", "DEMO word!", 4);
?>

出力

8192

この例では、先頭4文字「Demo」と「DEMO」を比較しています。大文字と小文字が区別されるため、両者は等しくないと判断され、文字コードの差に基づいた正の整数値が返されます。

使用例2:変数を使った比較

次に、変数に格納した文字列を比較する別の例を見てみましょう。

<?php
   $str1 = "TomHanks";
   $str2 = "tomhanks";
   print_r(strncmp($str1, $str2, 8));
?>

出力

-32

この例では、「TomHanks」と「tomhanks」の8文字すべてを比較しています。1文字目の「T」(ASCIIコード84)と「t」(ASCIIコード116)の時点で差が生じるため、負の値である「-32」が返されます。

まとめ

strncmp()関数は、文字列全体ではなく先頭のn文字だけを比較したい場合に便利な関数です。大文字・小文字を区別せずに比較したい場合は、代わりにstrncasecmp()関数を使用することをおすすめします。

  1. PHPのcrc32()関数とは?使い方とデータ整合性チェックの方法

    crc32()関数は、文字列から32ビット長のCRC(巡回冗長検査)チェックサムを計算するためのPHP組み込み関数です。主にデータの整合性を検証する目的で使用され、送信前後のデータが一致しているかどうかを簡単に確認できます。crc32()関数の概要CRC(Cyclic Redundancy Check:巡回冗長検査)は、データ通信やファイル転送時に発生する誤りを検出するための代表的な手法です。crc32()関数を使えば、任意の文字列に対応するチェックサム値(整数)を取得できます。同じ入力に対しては常に同じ値が生成されるため、データが途中で破損・改変されていないかを検証する際に役立ちます。構文c

  2. PHPのbin2hex()関数とは?文字列を16進数に変換する方法をわかりやすく解説

    PHPのbin2hex()関数は、文字列(ASCII文字)を16進数表現に変換するための組み込み関数です。バイナリデータや文字列を16進数の文字列として扱いたい場合に便利で、データのエンコード処理などによく利用されます。 構文 bin2hex(str) パラメータ str − 16進数に変換したい文字列を指定します。 戻り値 bin2hex()関数は、引数に渡されたASCII文字列を1バイトずつ16進数の値に変換し、その結果を文字列として返します。戻り値は常に英数字(0〜9、a〜f)で構成される文字列になります。 実際の使用例を見てみましょう。 例1:基本的な使い方 <?php