php
2013-12-14 33 views 1 likes 
1

我有一個腳本什麼給的是通過$錯誤碼=爲0x1或0X2或爲0x4或0x8中工作......PHP錯誤代碼爲0x1例如

這個代碼工作是給我正確的狀態消息:

<div class="left_content">Submit:</div> 
<div class="right_content"> 
    <?php echo ($errorCode & 0x1) != 0x1 
      ? "<span class='green'>Ok</span>" 
      : "<span class='red'>Fail</span>"; ?> 
</div> 

,但我試圖改變這個代碼,但是這個代碼的所有時間的狀態味精是「OK」,即使是失敗

if(($errorCode & 0x1) != 0x1) 
{ 
    $Error_0x1 = "<span class='green'>Ok</span>"; 
} else 
{ 
    $Error_0x1 = "<span class='red'>Fail</span>"; 
} 

什麼即時做錯了什麼?

+0

你爲什麼要將它與0x1進行比較?你的意思是字符串「0x1」嗎? –

+0

第一個代碼不是由我做的......我只是想轉換代碼... –

+0

這兩個代碼是正確的,這意味着第二個是上面三元操作的「長」版本。這段代碼的上下文是什麼?你有沒有保留它,或者你是否試圖在另一個環境/系統中使用它? –

回答

1

看你的代碼,所有我懷念的是實際echo $Error_0x1;和周圍的HTML標籤。

所以這應該是整個代碼:

<?php 
    if(($errorCode & 0x1) != 0x1) 
    { 
     $Error_0x1 = "<span class='green'>Ok</span>"; 
    } else 
    { 
     $Error_0x1 = "<span class='red'>Fail</span>"; 
    } 
?> 
<div class="left_content">Submit:</div> 
<div class="right_content"> 
    <?php echo $Error_0x1; ?> 
</div> 

順便說一句... 0x1只是意味着1二進制格式。

什麼$的errorCode &爲0x1實際上做的是看看與爲0x1的位(二進制1)$的errorCode重疊位。在這種情況下,在奇數時返回1,偶數時返回0。

163: 10100011 
0x1: 00000001 & 
--------------- 
    00000001 

所以,如果$錯誤碼爲163,你的代碼現在狀態if((1) != 1)。所以它應該閱讀失敗。如果沒有,看看你是否把你的重寫代碼放在了錯誤的地方,或者變量還沒有設置或者什麼......

+0

$ errorCode的值不是0x1,$ errorCode = 163的值因此需要類似if((163&0x1)!= 0x1)但這不起作用 –

+0

@MateiZoc我擴展了我的答案,更詳細。我所做的第一件事就是比較你所說的代碼(三元)與你所說的不工作的代碼(正常的if-else)。他們也應該這樣做。 –

+0

完美的作品是我的錯誤,我把它放在錯誤的地方 –

-1
if(($errorCode != '0x1') 
{ 
    $Error_0x1 = "<span class='green'>Ok</span>"; 
} else 
{ 
    $Error_0x1 = "<span class='red'>Fail</span>"; 
} 

這應該是訣竅。 如果它不工作,嘗試保換'0x1'0x1

+0

你正在比較字符串'0x1',這是不同於原始代碼 –

+0

是的,但第一個代碼是不正確的,我想這是他的錯誤工作(他沒有嘗試正確的場景) –

+1

我不看錯了......我通常用不同的方式來檢查錯誤,而不是使用位和exadecimals,但是誰知道。與字符串'0x1'相比,si有很大不同。我會比較一個布爾值,如果它是我 –

相關問題