2012-09-20 74 views
0

好了,所以我有這樣的代碼:問題與PHP按位與操作

<?php 
$p = 65536; 
$p2 = 33554432; 
if($p & $p2){ 
echo "True"; 
}else{ 
echo "False"; 
} 
?> 

好吧,如果我把號碼在腳本輸出是「假」,但是當我使用$ _GET,$ _ POST等,即使我把數字放在引號中,它也會返回「真」。

什麼問題呢? 任何幫助表示讚賞!

+1

這已是最差的(同時仍然準確)標題:) –

+0

能否請你澄清預期的輸入/輸出,和你看到的意想不到的結果?我不確定您的問題是否與您提供的代碼示例有關,或者涉及'$ _GET'的腳本的不同版本。 –

+0

您在哪裏使用$ _GET或$ _POST?你有沒有證實他們有你認爲他們的價值觀? –

回答

2

你需要扮演他們爲int,或者您正在使用兩個字符串做&

$p = (int)$_GET['p']; 
$p2 = (int)$_GET['p2']; 
if ($p & $p2) { 
    // ... 
3

$_GET$_POST的元素是字符串。如果你讀the docs,它的每個字符轉換成它的順序位置,擊中他們與位運算符,並將其轉換回一個字符。

你應該首先呼籲值intval()