2010-11-19 153 views
0

所以我有2个变量,var1,var2PHP数据类型比较不匹配

$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函数误输。更新。

+0

$ var2 = 10 - string是什么意思? – 2010-11-19 12:36:59

+0

我建议你阅读[编辑帮助](http://stackoverflow.com/editing-help)。例如。你不需要'
'换行符,只需在行尾加两个空格... – 2010-11-19 12:38:50

+0

@Felix,谢谢你的提示 @ Mark - 现在应该用Felixs清除编辑 – 2010-11-19 13:58:04

回答

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,但它应该没关系。你在展示的内容之间是否有其他代码?

0

使用str_replace()而不是substr_replace()

+0

是的,错误的错字,编辑。仍然没有修复。 – 2010-11-19 14:00:03

0

您已经为substr_replace指定了错误的参数,因此$ var1的计算结果为0.我想你想使用str_replace。

+0

是的,错误的错字,编辑。仍然没有修复。 – 2010-11-19 13:59:30

0

不需要进行类型转换。只是做str_replace函数

这里是代码

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

    echo $var2; 
+0

它不适合我,这就是为什么我张贴在这里。通常它应该 – 2010-11-19 13:58:47

+1

我试过Ravindrans代码,它使用PHP 5.2.4。你试过这个空白的PHP脚本?你确定没有其他代码的干扰吗? – acme 2010-11-19 14:47:42