2012-10-17 25 views
7

Trong PHP, lý do cơ bản của việc đặt boolean hoặc null trước toán tử so sánh giống hệt nhau là gì?Lý do đặt boolean hoặc null trước toán tử so sánh là gì?

false === $value; 
null === $value; 

Dường như với tôi rằng đó là giống như nói

$value === false; 

là nó chỉ là một sở thích cá nhân hoặc có một lý do cụ thể tại sao mọi người làm điều này?

+0

bản sao có thể có của [Tham khảo - Biểu tượng này có ý nghĩa gì trong PHP?] (Http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – rekire

+1

Anh ấy isn 't hỏi những gì một số nhà điều hành không, anh ấy hỏi tại sao một người sẽ làm so sánh Yoda. – Gromer

Trả lời

12

Đó là quy ước để tránh nhầm lẫn khi vô tình gán một biến.

$value = false; 

thay vì

$value === false; 
+1

+1, Điều quan trọng là phải biết lý do! Nếu do nhầm lẫn bạn viết 'false = $ value' bạn sẽ nhận được một lỗi hoặc cảnh báo, không giống' $ value = false' sẽ khiến bạn vô tình gán một biến. (Như @nalply đã viết) –

+0

@OfirBaruch: Tôi nhận được đối số này , Tôi thực sự làm ... nhưng tôi vẫn thấy nó ít thuyết phục hơn. Đa số mọi người viết điều kiện của họ theo cách khác. Khi áp dụng kiểu này, bạn có thể thấy mình đuổi theo các lỗi gây ra bởi 'if ($ false === $ value)' mà là một cách dễ dàng bỏ qua. Ngoài ra, khi làm việc trong một nhóm, đây là loại mã mà nhiều người sẽ thay đổi, để phù hợp với thói quen của họ ... làm cho đôi khi trở nên vô nghĩa. 1 cho câu trả lời này, mặc dù: đó là một điểm tốt –

+0

Nó chỉ là một quy ước. Tôi hiếm khi sử dụng nó. Nó cảm thấy khó xử với tôi. Đối với tôi, nó có ý nghĩa hơn trong các trường hợp đặc biệt như trong 'if (false === ($ file = fopen (" example.txt "," r "))) chết (" FAIL ");' hoặc như vậy. – nalply

4

này đôi khi được gọi là Yoda điều kiện, có một niềm vui list of all such constructs và tên không chính thức của họ.

Không có sự khác biệt thực sự giữa $var === false hoặc false === $var, một số người cho rằng dễ dàng hơn để xem những gì đang được kiểm tra nếu bool là toán hạng bên trái, ghét nó ... Tóm lại: sở thích cá nhân là nó là gì.

+0

+1 cho liên kết, phải đọc! –

+0

+1 Yoda Tôi yêu rất nhiều. – nalply

+0

Cảm ơn bạn đã liên kết. Nó rất hữu ích để biết các điều khoản khi tìm kiếm câu trả lời trực tuyến. – Ken

-1

Đó là nghĩa vụ phải được nhanh hơn, nhưng tôi không thể đặt một tay trên một cơ quan nói điều này với một tìm kiếm đơn giản của Google. Xem:

http://forums.phpfreaks.com/topic/222939-is-there-a-difference-between-ifvar-false-and-iffalse-var/

cho một ý kiến.

+0

Tôi không cố gắng trêu chọc, nhưng tôi không thấy nhiều điểm trong việc viết một bản tóm tắt ý kiến ​​của một ai đó. Tôi đã thử nghiệm ý kiến ​​của mình, và anh ấy đúng, nhưng chỉ ở quy mô lớn; nói, 1-1,5 giây trong hoạt động 100M. Xem http://pastebin.com/XsQ8ypPS –

+0

Ồ, và hãy đánh dấu một câu trả lời, sau đó yêu cầu làm rõ, và sau đó xóa câu hỏi của chúng tôi. Không hay. –

+0

Đó là tôi. Tôi nhận ra rằng không thể viết một bản tóm tắt của diễn đàn này. Đó là lý do tại sao tôi đã xóa yêu cầu viết tóm tắt. Sau đó, tôi donwvoted câu trả lời của bạn bởi vì tôi nghĩ rằng nó không phải là hữu ích cho StackOverflow để liên kết đến một diễn đàn. Vui lòng đọc Câu hỏi thường gặp tại sao nó không hữu ích. – nalply

Các vấn đề liên quan