两个整数之间的splat运算符是什么意思?

时间:2018-01-26 05:58:31

标签: php

两个整数之间的splat运算符是什么意思?

据我所知,splat运算符用于在函数上传递参数。 Manual

一个例子:

<?php
function fx(...$a) {
 print_r($a);
}
fx(1, 2, 3, 4, 5, 6); // array 1, 2, 3, 4, 5, 6

但是当splat运算符在这样的两个整数之间时它意味着什么呢?

<?php
echo 1...3; // Why is the output 10.3?
echo PHP_EOL;

echo 12...100; // Why is the output 120.1?
echo PHP_EOL;

1 个答案:

答案 0 :(得分:4)

...运算符仅用于解压缩遍历对象。

您的示例使用.运算符连接两个被解释为字符串的数字。

以下是等效的:

echo 1...3;         // interpreted as ((int) 1) . ((float) 0.3)
echo '1' . '0.3';

echo 12...100;      // interpreted as ((int) 12) . ((float) 0.1)
echo '12' . '0.1';