Php 为什么'';在我的代码中连接两个数字?

Php 为什么'';在我的代码中连接两个数字?,php,numbers,echo,Php,Numbers,Echo,我有以下代码片段,但我并不真正理解其输出: echo 20...7; 为什么此代码输出200.7 据我所知,是splat操作符,它在ruby中被调用,它让你有一个参数数目可变的函数,但我不明白它在echo上下文中的作用 有人能解释一下这段代码到底是做什么的吗?不,这不是splat/unpacking操作符,尽管看起来可能是这样。这只是PHP解析过程的结果。已经编写了一些不同的代码可能会消除一些混淆: echo 20. . .7; # ↑

我有以下代码片段,但我并不真正理解其输出:

echo 20...7;
为什么此代码输出
200.7

据我所知,是splat操作符,它在ruby中被调用,它让你有一个参数数目可变的函数,但我不明白它在
echo
上下文中的作用


有人能解释一下这段代码到底是做什么的吗?

不,这不是splat/unpacking操作符,尽管看起来可能是这样。这只是PHP解析过程的结果。已经编写了一些不同的代码可能会消除一些混淆:

echo  20.           .           .7;
#       ↑           ↑           ↑
#    decimal  concatenation  decimal
#      dot         dot         dot
现在您必须知道
.7
0.7
,您可以在PHP中省略0,如下所述:

因此,PHP只是将这两个数字连接在一起,在执行此操作时,PHP的类型转换将

因此,最终您的代码相当于:

echo "20" . "0.7";
//Output: "200.7"

一式两份。你们两个在同一个班@Rizier123我重新打开了它。可能是因为我在facebook的一个it群上发布了相同的问题,但没有人能够回答it@MartinPHP将
12..6
解释为
12。6
基本上是
12 0.6
,由于这两个数字之间没有任何运算符,PHP不知道要做什么。更准确地说,PHP解析
20…7
20…相同。7这只是编写
20.0的另一种方式。0.7
@axiac right,我的评论中有正确的版本,will-rix。
echo "20" . "0.7";
//Output: "200.7"