为什么 1...2 等于 PHP 中的“10.2”?

Why is 1...2 equivalent to "10.2" in PHP?

就在一秒钟前,我还在玩 PHP,试图弄清楚是否有原生范围函数(最终找到 range)。但是,我尝试过的其中一件事如下:

echo 1...2;

令我惊讶的是 returns 字符串 "10.2"。谁能确切地告诉我是什么语法造成的?它似乎不是 splat 运算符的有效位置。

语句由三部分组成:1...2。第一个计算结果为数字 1,第二个计算结果为字符串连接运算符,最后一个计算结果为 0.2。因此,你得到 10.2.

等效示例代码:

$a = 1.;
$b = .2;
echo "a = $a\n";
echo "b = $b\n";
echo "a.b = ".($a.$b)."\n";

产出

a = 1
b = 0.2
a.b = 10.2