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 chuỗi trong PHP không?Có phải == trong PHP so sánh chuỗi chữ thường hay không?
Trả lời
Có, ==
phân biệt chữ hoa chữ thường.
Bạn có thể sử dụng strcasecmp
đối với trường hợp không nhạy cảm so
Vâng, ==
là trường hợp nhạy cảm.
Ngẫu nhiên, đối với một trường hợp không so sánh nhạy cảm, sử dụng strcasecmp
:
<?php
$var1 = "Hello";
$var2 = "hello";
echo (strcasecmp($var1, $var2) == 0); // TRUE;
?>
(Không thể giúp bản thân mình^_ ^.) – Stephen
Vâng, nhưng nó có một so sánh byte-by-byte.
Nếu bạn so sánh chuỗi unicode, trước tiên bạn có thể muốn bình thường hóa chúng. Xem lớp Normalizer
.
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
+1 cho thông tin chi tiết rằng nó không thực sự so sánh chuỗi (so sánh nhị phân). Do đó nó về mặt kỹ thuật không phân biệt chữ hoa chữ thường (mặc dù trong 99.999% các trường hợp nó hoạt động giống như nó) ... – ircmaxell
==
là trường hợp nhạy cảm, một số toán hạng khác từ hướng dẫn php để làm quen với
http://www.php.net/manual/en/language.operators.comparison.php
==
là trường hợp nhạy cảm , Vâng.
Để so sánh chuỗi insensitively, bạn có thể sử dụng một trong hai strtolower($x) == strtolower($y)
hoặc strcasecmp($x, $y) == 0
Vâng, ==
là trường hợp nhạy cảm. Cách dễ 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!
- 1. Có phải giữa HQL so sánh đúng hay không?
- 2. So sánh chuỗi không phân biệt chữ hoa chữ thường C++
- 3. Chuỗi phân biệt chữ hoa chữ thường so sánh trong biểu thức LINQ
- 4. So sánh chuỗi phân biệt chữ hoa chữ thường trong Slick?
- 5. Chữ thường Postgresql để so sánh dữ liệu
- 6. So sánh và so sánh số nguyên chuỗi PHP Weird
- 7. PHP chuỗi so sánh không có dấu ngoặc kép
- 8. So sánh số có nhanh hơn so sánh chuỗi không?
- 9. MySQL chữ thường để so sánh dữ liệu
- 10. Tại sao SQL Server '=' so sánh không phân biệt chữ hoa chữ thường?
- 11. Đối sánh phân biệt chữ hoa chữ thường trong Marpa
- 12. Biến Bash: phân biệt chữ hoa chữ thường hay không?
- 13. cách tốt nhất để so sánh hai chuỗi và ký hiệu chữ hoa và chữ thường của chúng
- 14. Có jQuery không phân biệt chữ hoa chữ thường không: chứa bộ chọn?
- 15. So sánh hai chuỗi phiên bản trong PHP
- 16. Tại sao PHP booleans cả chữ thường và chữ thường?
- 17. Sử dụng JavaScriptSerializer.DeserializeObject làm cách nào tôi có thể lấy lại từ điển sử dụng trình so sánh chuỗi không phân biệt chữ hoa chữ thường?
- 18. So sánh chữ viết tay
- 19. So sánh chuỗi trong .Net: "+" so với "-"
- 20. Bỏ qua các chữ cái có dấu trong so sánh chuỗi
- 21. So sánh ngày PHP
- 22. so sánh chuỗi bash
- 23. mảng php - chữ hoa hoặc chữ thường
- 24. Có toán tử đẳng số không phân biệt chữ hoa chữ thường không?
- 25. Phiên bản PHP không phân biệt chữ hoa chữ thường của file_exists()
- 26. So sánh chuỗi PHP bằng cách sử dụng '=='
- 27. Có phải tất cả so sánh PHP bình đẳng đối xứng không?
- 28. So sánh chuỗi PostgreSQL
- 29. chuỗi so sánh phần
- 30. Integer chuỗi so sánh đều bình đẳng (PHP lỗi?)
câu hỏi hữu ích và câu trả lời hữu ích..thanks;) –