2011-09-01 24 views
0

可能重複:
Reference - What does this symbol mean in PHP?「|」是什麼意思在這個PHP代碼中?

下面是PHP代碼:

<?php 
    $a = $b['key'] | 0; 
?> 

它是一個運營商?

+1

PHP文檔說什麼? – Oded

+1

http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php – Mike

+0

這是一個按位[包含或(OR)](http://en.wikipedia.org/wiki/Inclusive_or)運營商。這在編程語言中是非常標準的。請參閱[手冊](http://php.net/manual/en/language.operators.bitwise.php)。每當你看到一個你不認識的操作員時,首先檢查操作員的手冊。 :) – netcoder

回答

1

它的按位或,如定義here

例如:

Bitwise Inclusive OR 
(5 = 0101) = (0 = 0000) | (5 = 0101) 
(5 = 0101) = (1 = 0001) | (5 = 0101) 
(7 = 0111) = (2 = 0010) | (5 = 0101) 
(5 = 0101) = (4 = 0100) | (5 = 0101) 
(13 = 1101) = (8 = 1000) | (5 = 0101) 
+1

OP詢問'|'**不''|| – Neal

+0

更正了我的答案,我的不好。 – TJHeuvel

+0

@TJHeuvel Tks。這是一個很好的例子。現在我得到了運營商。不知道爲什麼它用來代替'||'儘管..因爲數組應該包含一個整數。 – Tom

6

|bitwise OR操作。

做一個按位或爲零(| 0)沒有任何意義,因爲它不會翻轉任何位。也許寫這個的人只是一個非常糟糕的程序員,並試圖以這種方式將字符串轉換爲整數。他應該使用一個(string)而不是!

+0

如果存在'$ b ['key']'值但爲空(空),則此構造允許將0賦值爲0而不是$ a(可能對數據庫有用)。 – roselan

+0

@NikiC,tks。你的意思是「它不會翻轉任何位」? 說,如果$ b ['key']是整數'345', 在這段代碼中分配給$ a的是什麼?是整數'3450'? 這個操作員對我來說看起來很陌生。 – Tom

+0

@Tom:它會被賦值爲345.沒有任何變化。這就是爲什麼要做'| 0'有點意義;) – NikiC