组合字符串的PHP结果
有谁能告诉我为什么会出现以下表达式的结果:组合字符串的PHP结果,php,string,variables,Php,String,Variables,有谁能告诉我为什么会出现以下表达式的结果: $temp=3+"60%"+"$20" 为63 在PHP编程语言中,“$”和“%”是什么意思?首先,请注意,您正在执行数字加法(而不是字符串串联) 因此,解释器在执行求和之前会尝试将字符串转换为数字 解析字符串时,当遇到数字时,生成的数字就被建立起来。当遇到非数字时,转换结束** 将“60%”转换为60。%没有任何意义,只是被丢弃了 “$20”被转换为0,因为当遇到$符号时,字符串到整数的转换被中止 所以你有60+3 双引号字符串中的美元符号如
$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
。整个操作将转换为浮点数的总和。它们只是字符串,没有特殊意义。。。。你的数学试图给它们注入一些特殊的含义松散的键入意味着PHP将尝试将你的字符串转换为数字以用于算术(你的+
),从左到右工作,直到遇到非数字字符;因此它可以将“60%”
转换为60
,但不能将“$20”
转换为任何东西,因此它将其视为0;所以3+60+0=63这是有道理的。你能发表你的评论作为解决方案吗?谢谢