web-dev-qa-db-ja.com

== in PHPは大文字と小文字を区別する文字列比較ですか?

Php.netでこれを見つけることができませんでした。二重等号(==)PHPで文字列を比較する際に大文字と小文字を区別しますか?

86
user374343

はい、 ==は大文字と小文字が区別されます。

strcasecmp を使用して、大文字と小文字を区別しない比較を行うことができます。

100
Colin Pickard

はい。ただし、バイト単位の比較を行います。

Unicode文字列を比較する場合、最初に正規化することをお勧めします。 Normalizer クラスを参照してください。

例(UTF-8での出力):

$s1 = mb_convert_encoding("\x00\xe9", "UTF-8", "UTF-16BE");
$s2 = mb_convert_encoding("\x00\x65\x03\x01", "UTF-8", "UTF-16BE");
//look the same:
echo $s1, "\n";
echo $s2, "\n";
var_dump($s1 == $s2); //false
var_dump(Normalizer::normalize($s1) == Normalizer::normalize($s2)); //true
19
Artefacto

はい、 ==は大文字と小文字が区別されます。

ちなみに、大文字と小文字を区別しない比較の場合は、 strcasecmp を使用します。

<?php
    $var1 = "Hello";
    $var2 = "hello";
    echo (strcasecmp($var1, $var2) == 0); // TRUE;
?>
11
Stephen

_==_は大文字と小文字を区別します、はい。

文字列を区別せずに比較するには、strtolower($x) == strtolower($y)またはstrcasecmp($x, $y) == 0を使用できます。

8
Frxstrem

==は大文字と小文字が区別されます。PHPマニュアルのその他のオペランドには、

http://www.php.net/manual/en/language.operators.comparison.php

2
Robert

はい、 ==は大文字と小文字が区別されます。私にとって最も簡単な方法は、大文字に変換してから比較することです。インスタンス:

$var = "Hello";
if(strtoupper($var) == "HELLO") {
    echo "identical";
}
else {
    echo "non identical";
}

うまくいくことを願っています!

1
Salvi Pascual