PHP で、大文字・小文字を無視して比較する

PHP には strcasecmp() という大文字・小文字を無視して比較できる関数があります。

[参考]
PHP: strcasecmp - Manual

この関数、真偽値を返すのではなく、『str1 が str2 より小さい場合は負、str1 が str2 より大きい場合は正、等しい場合は 0 を返します。』というものなので 次のような使い方をすると結果が逆になってしまいます。

if (strcasecmp('aaaa', 'AAAA')) {
...

等しい場合が 0 なので FALSE 扱いになるわけです。 一致していることを判定するには、次のように 0 と比較するか、否定します。

if (strcasecmp('aaaa', 'AAAA') == 0) {
...

if ( ! strcasecmp('aaaa', 'AAAA')) {
...

ただ、否定だとあとで意味を取り違えることがあるかもしれないので 0 で比較する方が良いと思います。

Google サイト内検索

Amazonアソシエイト