Các toán tử so sánh < <= > >=
cũng có thể được áp dụng cho chuỗi. Vậy tại sao chúng ta cần chức năng đặc biệt để so sánh chuỗi: strcmp
?PHP: Tại sao chúng ta cần hàm so sánh chuỗi?
Trả lời
Bởi vì có rất nhiều biến thể:
Tùy thuộc vào chức năng, câu trả lời cho những câu hỏi khác nhau:
- Có trường hợp nhạy cảm? (
strcmp
vsstrcasecmp
,strnatcmp
vsstrnatcasecmp
) - Tùy thuộc vào miền địa phương? (
strcoll
) - Tôi có thể chỉ định đối chiếu không? (
strcoll
bị ảnh hưởng bởisetlocale
)
Additionaly, các toán tử so sánh cũng cho true
hoặc false
. strcmp
cung cấp số nguyên để mã hóa đồng thời cho dù có nhận dạng (trả về 0) hay, nếu không, số này lớn hơn (tùy thuộc vào giá trị dương hay âm).
Mặc dù không có quá tải trong PHP cho strcmp, kết quả strcmp trong 3 giá trị khác nhau -1 cho nhỏ hơn 0 cho bằng và +1 lớn hơn chuỗi so sánh. Với < = <= > >=
bạn sẽ có (đôi khi) để làm nhiều lần kiểm tra cái khác.
Nó không chỉ trả lại -1, 1 và 0. – Artefacto
Và trừ khi bạn thực hiện một số loại tra cứu bảng bạn sẽ kết thúc với một trường hợp xấu nhất hai so sánh là tốt. – Artefacto
Erm, 'strcmp' được sử dụng theo cách khá giống nhau, ngoại trừ việc bạn dùng toán tử so sánh và áp dụng nó cho' 0'. Vì vậy, '$ a <$ b' trở thành' strcmp ($ a, $ b) <0' - tương tự với '==', '<=', '>' và '> ='. – Joey
- 1. Tại sao chúng ta cần sợi
- 2. Tại sao chúng ta cần strdup()?
- 3. Tại sao chúng ta cần ng-click?
- 4. Tại sao PHP gộp hai chuỗi số thành số trước khi [lỏng lẻo] so sánh chúng?
- 5. Tại sao chúng ta cần toán tử === đặc biệt này?
- 6. flexbox vs bảng, tại sao chúng ta cần flexbox?
- 7. Tại sao chúng ta không thể sử dụng '==' để so sánh hai phao hoặc số đôi
- 8. Tại sao chúng ta so sánh nhiều nhất 7 điểm trong thuật toán cặp gần nhất?
- 9. Tại sao chúng ta cần các Dịch vụ Web RESTful?
- 10. Tại sao chúng ta cần funcall trong Lisp?
- 11. Tại sao chúng ta cần các nhà thầu tĩnh?
- 12. So sánh và so sánh số nguyên chuỗi PHP Weird
- 13. Tại sao chúng ta cần giao diện trong Java?
- 14. Tại sao chúng ta cần phương pháp ContinueWith?
- 15. Tại sao chúng ta cần ssh không mật khẩu Hadoop?
- 16. Tại sao chúng ta cần Properties trong C#
- 17. Tại sao chúng ta cần sử dụng cơ số?
- 18. lý do tại sao chúng ta cần Hadoop cho hypertable
- 19. Tại sao chúng ta cần đặt khoảng trống trước% c?
- 20. Tại sao chúng ta cần toán tử "delete []"?
- 21. Tại sao chúng ta cần một thẻ fieldset?
- 22. Tại sao chúng ta cần đặt const ở cuối đầu của hàm nhưng tĩnh lúc đầu?
- 23. Tại sao chúng ta cần phải thoát khỏi! < >: = - trong biểu thức chính quy php?
- 24. tại sao chúng ta cần tính toán thời gian từ năm 1970?
- 25. Tại sao chúng ta tái cấu trúc?
- 26. ctime() trả về một chuỗi, tại sao chúng ta không cần giải phóng() bộ nhớ của chuỗi ký tự này?
- 27. Tại sao hàm lubridate quá chậm khi so sánh với.POSIXct?
- 28. Tại sao chúng ta sử dụng Response.ClearHeaders()?
- 29. MVC: tại sao chúng ta cần "điều khiển", hoặc khi nào chúng ta nên sử dụng mẫu này?
- 30. Javascript: Tại sao so sánh với null?
Tôi có thể đoán rằng bạn có thể cung cấp bộ so sánh hoặc ngôn ngữ riêng cho hàm đó ... nhưng không, nó chỉ là hàm C cũ của thư viện C, mặc dù an toàn nhị phân. Vì vậy, có thể để dễ dàng chuyển mã C sang PHP ... vì điều đó dường như xảy ra mọi lúc. – Joey