比较时PHP数据类型不匹配

时间:2010-11-19 12:31:40

标签: php operators mismatch

所以我有两个变量,var1, var2

$var1 = "53,000,000" //- integer
$var2 = 10 //- string

最后我想比较两者,所以我

$var1 = (int)str_replace(",","",$var1); // => 53000000 - integer

这是我的问题..如果我这样做:

if($var1 > $var2)  
    $var2 = $var1

我得到$var2 = 0 ....为什么? ..在PHP 5.2.14上运行

编辑意外输入substr_replace而不是str_replace。更新。

4 个答案:

答案 0 :(得分:1)

我必须添加几个分号,但这里是代码:

$var1 = "53,000,000"; //- integer
$var2 = 10; //- string
//In the end I want to compare both, so I

$var1 = (int)str_replace(",","",$var1); // => 53000000 - integer
//Here's my issue .. if I do:

if($var1 > $var2)  
    $var2 = $var1;

var_dump($var1, $var2);

这是我的输出:

  

int(53000000)int(53000000)

我用了5.2.6,但没关系。你在展示的内容之间是否还有其他代码?

答案 1 :(得分:0)

使用str_replace()代替substr_replace()

答案 2 :(得分:0)

你为substr_replace指定了错误的参数,所以$ var1被评估为0.我想你想使用str_replace。

答案 3 :(得分:0)

无需进行铸造。只需执行str_replace

这是代码

$var1 = "53,000,000" ;    
$var2 = 10;  
$var1=str_replace(',','',$var1);  
if($var1 > $var2)    
    $var2 = $var1;

    echo $var2;