Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
组合字符串的PHP结果_Php_String_Variables - Fatal编程技术网

组合字符串的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这是有道理的。你能发表你的评论作为解决方案吗?谢谢