Sau khi chơi với PHP, tôi phát hiện ra rằng sự thật sẽ được trả về như 1 và sai như null.
Điều đó không đúng (không có ý định chơi chữ).PHP, giống như nhiều ngôn ngữ khác, có giá trị "trung thực" và "giả", có thể hoạt động như TRUE
hoặc FALSE
khi được so sánh với các giá trị khác.
Thật là beause PHP sử dụng đánh máy yếu (so với strong typing). Nó tự động chuyển đổi các loại giá trị khác nhau khi so sánh chúng, do đó, nó cuối cùng có thể so sánh hai giá trị của cùng một loại. Khi bạn echo TRUE;
trong PHP, echo
sẽ luôn xuất một chuỗi. Nhưng bạn đã vượt qua nó một giá trị boolean, mà phải được chuyển đổi thành một chuỗi trước khi echo
có thể thực hiện công việc của nó. Vì vậy, TRUE
được tự động chuyển đổi thành chuỗi "1"
, trong khi FALSE
được chuyển đổi thành ""
.
Khi nào bạn sử dụng toán tử ===?
Điều này yếu hoặc lỏng lẻo, gõ là lý do PHP sử dụng hai toán tử bình đẳng, ==
và ===
. Bạn sử dụng ===
khi bạn muốn đảm bảo cả hai giá trị mà bạn đang so sánh không chỉ là "bằng" (hoặc tương đương), nhưng cũng có cùng loại. Trong thực tế:
echo 1 == TRUE; // echoes "1", because the number 1 is a truthy value
echo 1 === TRUE; // echoes "", because 1 and TRUE are not the same type (integer and boolean)
Khi viết các chức năng mà trở về đúng hay sai, thực hiện những điều tốt nhất cho việc sử dụng chúng là gì?
Be chính xác khi bạn có thể, trả lại boolean thực tế TRUE
hoặc FALSE
. Các trường hợp điển hình là các hàm được bắt đầu bằng is
, như isValidInput
. Người ta thường mong đợi các chức năng như vậy để trả về TRUE
hoặc FALSE
.
Mặt khác, sẽ hữu ích khi hàm của bạn trả về giá trị "sai" hoặc "trung thực" trong một số trường hợp. Lấy ví dụ strpos
. Nếu nó tìm thấy chuỗi con ở vị trí 0, nó trả về 0
(int), nhưng nếu chuỗi không được tìm thấy, nó trả về FALSE
(bool). Vì vậy:
$text = "The book is on the table";
echo (strpos($text, "The") == FALSE) ? "Not found" : "Found"; // echoes "Not found"
echo (strpos($text, "The") === FALSE) ? "Not found" : "Found"; // echoes "Found"
Bạn đã hỏi ít nhất 4 câu hỏi. Câu hỏi _real_ của bạn là gì? – Madbreaks
"PHP" và "thực hành tốt nhất" là những từ hiếm khi được nghe trong cùng một câu. –
@GeorgeCummins Đúng với người mới. Tương tự áp dụng cho bất kỳ ngôn ngữ nào. – Madbreaks