Vraag Is == in PHP een hoofdlettergevoelige tekenreeksvergelijking?


Ik kon dit niet vinden op php.net. Is het dubbele gelijkteken (==) hoofdlettergevoelig wanneer gebruikt om strings in PHP te vergelijken?


83
2017-08-17 20:33


oorsprong


antwoorden:


Ja, == is hoofdlettergevoelig.

Je kunt gebruiken strcasecmp voor niet-hoofdbrekende vergelijking


96
2017-08-17 20:35



Ja, maar het vergelijkt byte-by-byte.

Als u unicode-reeksen vergelijkt, wilt u ze mogelijk eerst normaliseren. Zie de Normalizer klasse.

Voorbeeld (output in 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

18
2017-08-17 20:37



Ja, == is hoofdlettergevoelig.

Overigens, gebruik voor een niet-hoofdlettergevoelige vergelijking strcasecmp:

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

11
2017-08-17 20:37



== is hoofdlettergevoelig, ja.

Om strings ongevoelig te vergelijken, kunt u een van beide gebruiken strtolower($x) == strtolower($y) of strcasecmp($x, $y) == 0


8
2017-08-17 20:38



== is hoofdlettergevoelig, een aantal andere operanden uit de php-handleiding om vertrouwd te raken met

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


2
2017-08-17 20:37



Ja, == is hoofdlettergevoelig. De gemakkelijkste manier voor mij is om naar hoofdletters om te zetten en vervolgens te vergelijken. Bijvoorbeeld:

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

Ik hoop dat het werkt!


0
2018-05-20 18:42