组合字符串的PHP结果

时间:2016-04-24 19:28:12

标签: php string variables

任何人都可以告诉我为什么以下表达式的结果:

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

是63

PHP编程语言中“$”和“%”的含义是什么?

1 个答案:

答案 0 :(得分:1)

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

出于这个原因,解释器尝试在执行求和之前将字符串转换为数字。

解析字符串,遇到数字时会生成结果数字。当遇到非数字时,转换结束**。

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

"$20"转换为0,因为遇到$符号时,字符串转换为int转换。

所以你有60+3

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

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

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

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