PHP 比较数据类型不匹配

发布于 2024-10-03 04:32:34 字数 470 浏览 8 评论 0原文

所以我有 2 个变量,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。已更新。

So I have 2 variables, var1, var2.

$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

I get $var2 = 0 .... Why ?
.. running on PHP 5.2.14

EDIT Accidentally typed in substr_replace instead of str_replace. Updated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

北凤男飞 2024-10-10 04:32:34

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

$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,但这应该不重要。您在显示的内容之间还有其他代码吗?

I had to add a couple semicolons, but here's the code:

$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);

And here's my output:

int(53000000) int(53000000)

I used 5.2.6, but it shouldn't matter. Do you have any other code in between what you're showing?

白龙吟 2024-10-10 04:32:34

使用 str_replace() 而不是 substr_replace()

Use str_replace() instead of substr_replace().

风筝在阴天搁浅。 2024-10-10 04:32:34

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

You've specified the wrong parameters for substr_replace, so $var1 is evaluated to 0. I guess you wanted to use str_replace.

我是男神闪亮亮 2024-10-10 04:32:34

不需要类型转换。只需执行 str_replace

这是代码

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

    echo $var2;

No need for type casting. just do the str_replace

Here is code

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

    echo $var2;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文