LoginSignup
0
0

More than 1 year has passed since last update.

PHP 大文字 小文字を区別せずバイナリを使って文字列を比較するメソッド

Last updated at Posted at 2021-11-24

目的

  • PHPにてバイナリを用いて文字列を比較する方法をまとめる

情報

  • 下記のサイトを用いてこちらに記載するソースの検証を実施した。

方法

  • strcasecmp()メソッドを使用して比較する。
  • ASCII文字だけが、大文字小文字を区別せず比較されるらしい。
  • $str_1$str_2をそれぞれ比較してみる。
  • $str_1には「aaa」を、$str_2には「AAA」を格納し下記のように比較してみる。

    <?php
    
    $str_1 = 'aaa';
    $str_2 = 'AAA';
    
    echo strcasecmp($str_1, $str_2);
    // 0と出力される。
    
  • 上記の処理は大文字小文字は関係なく、同一文字かを評価するので同一(つまりintの'0')が返される。

その他の検証

  • $str_1には「aaa」を、$str_2には「bbb」を格納し下記のように比較してみる。

    <?php
    
    $str_1 = 'aaa';
    $str_2 = 'bbb';
    
    echo strcasecmp($str_1, $str_2);
    // -1と出力される。
    
  • バイナリ比較して第一引数 < 第二引数となる時は負の数が返されるらしい。

  • $str_1には「bbb」を、$str_2には「aaa」を格納し下記のように比較してみる。

    <?php
    
    $str_1 = 'bbb';
    $str_2 = 'aaa';
    
    echo strcasecmp($str_1, $str_2);
    // 1と出力される。
    
  • バイナリ比較して第一引数 > 第二引数となる時は正の数が返されるらしい。

  • strcasecmp()メソッドを使って第一引数と第二引数の文字列のバイナリ差分でif分岐を行いたい場合、下記の様に記載する。

    <?php
    
    if( strcasecmp($str_1, $str_2) === 0){
        // $str_1と$str_2が一致している時の処理
    }
    

    参考文献

  • https://www.php.net/manual/ja/function.strcasecmp.php

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0