2013-04-23 89 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