题 在php中添加带数字的字符串


$a = "3dollars";
$b = 20;
echo $a += $b;
print($a += $b);

结果:

23
43

我从这个计算中得到一个问题。$ a是一个字符串,$ b是数字。我正在添加两个并使用echo打印23并使用print return 43.打印。现在是怎么回事


13
2018-06-14 04:45


起源


php.net/language.types.type-juggling


答案:


它会将“3dollars”作为一个数字投射出来 $a = 3

当你回音时,你要加20 $a,所以它打印 23 和 $a = 23

然后,当你打印时,你再次添加20,所以现在 $a = 43


17
2018-06-14 04:48



如何从“3dollar”获得3? - rynhe
这就是PHP处理字符串到int转换的方式。它挑选出领先的数字并忽略其余的数字。请阅读Phpenix发布的链接,作为对您问题的评论。 - xbonez
更合适的链接: php.net/manual/en/... - xbonez
好的,谢谢xbonez和凤凰城 - rynhe
这是我曾经想过的最糟糕的事情之一!我们有一个情况。 PHP:“好的,给我你的变量。好吧,int和字符串。你想做什么?添加?让我们看看我能做些什么......好吧!拿出总和!什么?这个总和是错的?为什么?来自字符串的数据在没有任何警告的情况下丢失了,总和不是关联的?听着,你给我bull!t t I I I I I。。。。。。。。。。。。。。????????严格的典型化,并爱上她! - Igor Yudnikov


添加(技术上连接)字符串的正确方法是

$a = 7;
$b = "3 dollars";
print ($a . $b);  // 73 dollars

+ php中的operator自动将字符串转换为数字,这解释了为什么你的代码执行了arimethic而不是连接


0
2017-11-20 12:51





由于你已经为这两个变量创建了一个变量,它会存储每个变量的结果,因此当你将$ a加到20时它将回显23存储在系统中的它们,当你打印$ a时它们现在是23除了$ b之外这是20.你会得到43。


-2
2017-12-13 20:24





PHP将'3dollars'视为整数3,因为字符串以整数开头并参与算术运算,所以

    $a = "3dollars";
    $b = 20;
    echo $a += $b;
    it echo 23;   //$a=$a+$b;

    now $a = 23 + 20;
    print($a += $b);    //$a=$a+$b;
    it print 43;

-3
2017-11-20 12:46