2013-04-23 85 views
0

我想比較兩個值,但是當我這樣做似乎並不奏效。我知道這些價值是什麼,所以它應該是真實的。更糟糕的是,如果我將其中一個變量取出並將其中的數字起作用。比較Opeartor看起來不起作用

$data = simplexml_load_file('xml/heroes/hero.xml') 
    or die("Error: Cannot create object"); 
$hme = $data->hes->he->maxen;  
$hce = $data->hes->he->curen; 
$hac = $data->hes->he->lastac; 
echo $hce . ' should not be greater than ' . $hme; 
if($hce > $hme){ 
echo 'should be working'; 
} 

輸出:

773應不大於20

+3

您需要顯示設置'$ hce'和'$ hme'的代碼。 – Polynomial 2013-04-23 16:03:48

+1

'$ hce'和'$ hme'是什麼?他們可以是字符串嗎? – j08691 2013-04-23 16:04:01

+0

請向我們展示'var_export($ hce,true)'和'var_export($ hme,true)'的輸出。 – cdhowie 2013-04-23 16:04:56

回答

1

我覺得你的變量都是這樣

$hce = "773"; 
$hme = "20"; 

比較之前他們做INTVAL

if(intval($hme)>intval($hce)) 
+0

這對我很有用,非常感謝! – Rudenate3 2013-04-23 16:11:14

0

我覺得你把他們作爲strings.I認爲你需要將它們轉換爲整數。

簡單的函數來做到這一點:

int atoi(char *s) 
{ 
int val = 0; 
while (*s) 
{ 
    val *= 10; 
    val += (*s) - '0'; 
    s++; 
} 

return val; 
} 
+2

這是一個php問題。誠實的錯誤,但請在您的答案被標記爲「不是答案」之前刪除您的答案。 – Maerlyn 2013-04-23 16:09:08

1

投下你的字符串爲整數:

$hme = (int)$data->hes->he->maxen;  
$hce = (int)$data->hes->he->curen; 
$hac = (int)$data->hes->he->lastac; 
+0

這對我有用,謝謝! – Rudenate3 2013-04-23 16:10:10