2009-08-23 41 views
41

Xin chào, tôi chỉ muốn biết tại sao mã này mang lại kết quả không chính xác (ít nhất là đối với tôi).Toán tử bậc ba và chuỗi nối quirk?

Vâng, có lẽ tôi đang ở đây lỗi

$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other'; 

tôi đã đoán rằng nếu paperType bằng 'Bond' sau đó mô tả là 'giấy: Bond' và nếu paperType không tương đương với 'Bond' sau đó mô tả là 'Giấy: Khác'.

Nhưng khi tôi chạy mã này kết quả là mô tả là 'Trái phiếu' hoặc 'Khác' và để tôi tự hỏi chuỗi 'Giấy:' đã đi đâu ???

Trả lời

76
$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other'); 

Thử thêm dấu ngoặc đơn để chuỗi được nối vào một chuỗi theo đúng thứ tự.

+0

Vâng, nó hoạt động, do đó, là một vấn đề ưu tiên điều hành trong mã của tôi, xấu hổ về tôi; ~) – Cesar

+1

Nhưng tôi không thực sự hoàn toàn hiểu whats xảy ra ... – Cesar

+1

' Giấy: 'đang được áp dụng đầu tiên cho một boolean (kết quả của $ paperType ==' bond '), nói cách khác mã không xảy ra theo thứ tự đúng. –

8

Nó có liên quan đến quyền ưu tiên của nhà điều hành. Bạn cần phải làm như sau:

$description = 'Paper: ' . (($paperType == 'bond') ? 'Bond' : 'Other'); 
Các vấn đề liên quan