$a = "3dollars";
$b = 20;
echo $a += $b;
print($a += $b);
结果:
23 43
我对这个计算有一个问题。$a 是一个字符串,$b 是数字。我正在添加两者并使用 echo 它的 print 23 打印并使用 print return 43 打印。它是怎么回事
$a = "3dollars";
$b = 20;
echo $a += $b;
print($a += $b);
结果:
23 43
我对这个计算有一个问题。$a 是一个字符串,$b 是数字。我正在添加两者并使用 echo 它的 print 23 打印并使用 print return 43 打印。它是怎么回事
它将“3dollars”作为一个数字,得到$a = 3
.
当您回显时,您将 20, 添加到$a
,因此它会打印23
and $a = 23
。
然后,当您打印时,您再次添加 20,所以 now $a = 43
。
添加(技术上连接)字符串的正确方法是
$a = 7;
$b = "3 dollars";
print ($a . $b); // 73 dollars
php 中的+
运算符自动将字符串转换为数字,这就解释了为什么您的代码执行的是arimethic 而不是串联
PHP 根据变量的值自动将数据类型关联到变量。由于数据类型不是严格意义上的设置,您可以执行诸如将字符串添加到整数之类的操作而不会导致错误。
在 PHP 7 中,添加了类型声明。这为我们提供了在声明函数时指定预期数据类型的选项,并且通过添加严格声明,如果数据类型不匹配,它将抛出“致命错误”。
要指定严格,我们需要设置 declare(strict_types=1);。这必须在 PHP 文件的第一行。然后它会显示致命错误,如果你没有声明这个严格的,那么它将字符串转换为整数。
如果您需要这两个值,请将它们返回到数组中
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;
由于您为这两个变量创建了一个变量,它存储了每个变量的结果,因此当您将 $a 添加到 20 时,它将回显 23 存储在系统中,当您打印 $a 时,它们现在是 23 除了 $b即 20。你将得到 43。