2011-07-06 29 views
12

Tôi đã đọc một số mã nguồn php và thấy như sau:sử dụng | = trong php

$failed |= is_numeric($key); 

khác hơn nếu $key là số, những gì |= nghĩa là gì?

+3

http://www.php.net/manual/en/language.operators.assignment. php # 40084 – mario

Trả lời

14

$x |= $y; cũng giống như $x = $x | $y;

$x | $y là một nhà điều hành Bitwise có nghĩa là nó sẽ trả về kết quả của một logic 'hoặc' giữa hai biến.

Trong ngữ cảnh của câu hỏi, nó cho phép $failed lưu trữ trạng thái lỗi cho một số hành động trong một biến duy nhất (mỗi vị trí bit đại diện cho một hành động riêng lẻ).

Nếu bạn cần biết thêm về điều này không, tôi khuyên bạn nên đọc PHP trang hướng dẫn cho các nhà khai thác Bitwise: http://www.php.net/manual/en/language.operators.bitwise.php

+0

+1 là câu trả lời chính xác và đầy đủ nhất từ ​​trước tới nay. – Dereleased

+0

Bỏ phiếu không phải là để so sánh với các câu trả lời khác, nhưng cho giá trị tuyệt đối. Tuy nhiên, +1 vì đây là một câu trả lời hay. –

12

Ký hiệu $a |= $b có nghĩa là $a = $a | $b, tương tự như các ký hiệu khác x=. Các | là một hoạt động OR bitwise.

4

Đó là tương đương với:

$failed = $failed | is_numeric($key); 

| là Bitwise or điều hành.

Bất cứ lúc nào bạn nhìn thấy x <something>= y, nó có thể được viết lại là x = x <something> y, khá nhiều.

4

Đó là một Bitwise OR do đó, dòng giống như

$failed = $failed | is_numeric($key); 

Điều đó có nghĩa là $failedtrue nếu một trong hai $failed đã true trước hayis_numeric($key)true.