Ответ 1
Нет, это не оператор splat/unpacking, даже думал, что это может показаться. Это результат процесса разбора PHP. Уже написав свой код немного по-другому, вы можете устранить некоторую путаницу:
echo 20. . .7;
# ↑ ↑ ↑
# decimal concatenation decimal
# dot dot dot
Теперь вы должны знать, что .7
равно 0.7
и вы можете опустить 0 в PHP, как описано в синтаксисе для чисел с плавающей запятой:
DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
Таким образом, PHP просто объединяет эти два числа вместе, и при этом жонглирование типа PHP беззвучно преобразует оба числа в строки.
Таким образом, ваш код эквивалентен:
echo "20" . "0.7";
//Output: "200.7"