组合字符串的 PHP 结果


PHP result of combined string

谁能告诉我为什么以下表达式的结果:

$temp=3+"60%"+"$20"   

是 63

PHP编程语言中的"$"和"%"是什么符号?

首先,请注意您正在执行数字加法(而不是字符串连接)。

因此,解释器在执行求和之前尝试将字符串转换为数字。

解析字符串,当遇到数字时,将建立结果数字。当遇到非数字时,转换结束**。

"60%"转换为60%没有意义,只是被丢弃了。

"$20"被转换为0因为遇到$符号时,字符串到整数的转换被中止。

所以你有60+3

如果双引号字符串中的美元符号后跟变量的名称,则实际上具有特殊含义:变量的内容被放入字符串中,因此:

$a = "20";
$b = "10" + "$a"; // --> 30

(**) 有一些例外:"10E3"转换为 10E3 = 1000 ;

"10.2"转换为10.2。整个操作变成浮点数的总和。