如上,为什么echo 1+2+"3+4+5”输出的结果是6呢?刚开始我也不是很明白,以为有问题,但在电脑上运行程序的时候,结果出现6 了。这让我更加疑惑不解。现将问题解释一番。
在php语言里,对于数字式字符与数字如何参与运算,在具体情况下会视情来确定,例如:echo
"3+4+5"; 结果: 3+4+5 。因为将其视作是一个字符串了。而当echo 1+2+"3+4+5”时,会将其视为一个表达式。这样就涉及到PHP中不同数据类型运算的问题了。不同数据类型的数据在参与数据时,php会进行数据转换,以尽量确保使表达式成
功运行,在"3+4+5"前面的运算符是 + ,那么,php会将"3+4+5"当作数值类型,此时会隐式地进行数据类型的转换,将
这个字符串转换成数值,php字符串转整数的规则是,从字符串前部开始提取尽可能多的数字,后面非数字部分被丢
弃。"3+4+5"是字符串,进入数值计算的时候,会将字符串硬性的转化为数值,一般是取第一个字符串的值,如果是数
值型的字符串,则是一个完整的数字。因此,"3+4+5"转换成数值的结果就是3,所以,整个表达式的结果是:1+2+3
=
6。