Tôi không thể tìm thấy điều này trên php.net. Dấu bằng kép ( ==
) có phân biệt chữ hoa chữ thường khi được sử dụng để so sánh các chuỗi trong PHP không?
Tôi không thể tìm thấy điều này trên php.net. Dấu bằng kép ( ==
) có phân biệt chữ hoa chữ thường khi được sử dụng để so sánh các chuỗi trong PHP không?
Câu trả lời:
Có, ==
có phân biệt chữ hoa chữ thường.
Bạn có thể sử dụng strcasecmp
để so sánh phân biệt chữ hoa chữ thường
Có, nhưng nó thực hiện so sánh từng byte.
Nếu bạn đang so sánh các chuỗi unicode, trước tiên bạn có thể muốn chuẩn hóa chúng. Xem Normalizer
lớp học.
Ví dụ (đầu ra trong 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
Có, ==
có phân biệt chữ hoa chữ thường.
Ngẫu nhiên, đối với so sánh không phân biệt chữ hoa chữ thường, hãy sử dụng strcasecmp
:
<?php
$var1 = "Hello";
$var2 = "hello";
echo (strcasecmp($var1, $var2) == 0); // TRUE;
?>
==
có phân biệt chữ hoa chữ thường.
Để so sánh các chuỗi một cách thiếu nhạy cảm, bạn có thể sử dụng strtolower($x) == strtolower($y)
hoặcstrcasecmp($x, $y) == 0
==
có phân biệt chữ hoa chữ thường, một số toán hạng khác từ hướng dẫn sử dụng php để làm quen với
http://www.php.net/manual/en/language.operators.comparison.php
Có, ==
có phân biệt chữ hoa chữ thường. Cách đơn giản nhất đối với tôi là chuyển đổi sang chữ hoa và sau đó so sánh. Ví dụ:
$var = "Hello";
if(strtoupper($var) == "HELLO") {
echo "identical";
}
else {
echo "non identical";
}
Tôi hy vọng nó hoạt động!
Thay vào đó, bạn có thể thử so sánh với một hàm băm
if( md5('string1') == md5('string2') ) {
// strings are equal
}else {
// strings are not equal
}