Thông thường trong PHP, tôi thấy:Sử dụng 'or die()' để ngăn chặn về lỗi trong PHP
$result = mysql_query($query) or die();
Đến từ trăn, tôi biết tại sao điều này nên làm việc, bởi vì or
trả về giá trị đầu tiên nếu nó là đúng theo ngữ cảnh boolean và giá trị thứ hai khác (xem this).
Nhưng khi tôi thử các kỹ thuật nói trên trong PHP trong bối cảnh khác, ví dụ như một cái gì đó như:
$name = "John Doe";
echo $name or "Anonymous";
Các or
không trả về giá trị đầu tiên ("John Doe"), nó sẽ trả về 1.
Tại sao điều này làm việc trong trường hợp kết quả mysql_query(), nhưng không phải trong các trường hợp khác? Có xấu khi sử dụng trong một trường hợp mysql_query() (bỏ qua thực tế là tôi không trả lại một lỗi hữu ích cho người dùng)?
+1 Giải thích tuyệt vời. – karim79
+1 tuyệt vời từ, "truthy" –
Sau đó, tôi đoán điều này sẽ làm việc với các chức năng in như 'printf', hoặc là vấn đề này, becaus nó tạo ra đầu ra? Đó là một chức năng nên nó hoạt động đúng không? –