任何人都可以告诉我为什么以下表达式的结果:
$temp=3+"60%"+"$20"
是63
PHP编程语言中“$”和“%”的含义是什么?
答案 0 :(得分:1)
首先,请注意您正在添加数字(不是字符串连接)。
出于这个原因,解释器尝试在执行求和之前将字符串转换为数字。
解析字符串,遇到数字时会生成结果数字。当遇到非数字时,转换结束**。
"60%"
已转换为60
。 %
没有任何意义,只是被丢弃。
"$20"
转换为0
,因为遇到$
符号时,字符串转换为int转换。
所以你有60+3
双引号字符串中的美元符号实际上具有特殊含义,如果后面跟着变量的名称:变量的内容放在字符串中:
$a = "20";
$b = "10" + "$a"; // --> 30
(**)有一些例外:"10E3"
转换为10E3
= 1000
;
"10.2"
转换为10.2
。整个操作变成浮点数的总和。