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

结果:

23
43

我对这个计算有一个问题。$a 是一个字符串,$b 是数字。我正在添加两者并使用 echo 它的 print 23 打印并使用 print return 43 打印。它是怎么回事

4

6 回答 6

20

它将“3dollars”作为一个数字,得到$a = 3.

当您回显时,您将 20, 添加到$a,因此它会打印23and $a = 23

然后,当您打印时,您再次添加 20,所以 now $a = 43

于 2012-06-14T04:48:01.497 回答
3

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

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

php 中的+运算符自动将字符串转换为数字,这就解释了为什么您的代码执行的是arimethic 而不是串联

于 2014-11-20T12:51:45.357 回答
1

PHP 根据变量的值自动将数据类型关联到变量。由于数据类型不是严格意义上的设置,您可以执行诸如将字符串添加到整数之类的操作而不会导致错误。

在 PHP 7 中,添加了类型声明。这为我们提供了在声明函数时指定预期数据类型的选项,并且通过添加严格声明,如果数据类型不匹配,它将抛出“致命错误”。

要指定严格,我们需要设置 declare(strict_types=1);。这必须在 PHP 文件的第一行。然后它会显示致命错误,如果你没有声明这个严格的,那么它将字符串转换为整数。

于 2020-05-07T12:37:50.283 回答
0

如果您需要这两个值,请将它们返回到数组中

于 2021-05-17T11:23:34.707 回答
-1

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;
于 2014-11-20T12:46:48.090 回答
-2

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

于 2013-12-13T20:24:49.417 回答