谁能告诉我为什么以下表达式的结果:
$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
。整个操作变成浮点数的总和。