我认为我已经足够了解String Operator .
,直到我今天被问到有关它的问题。问题看起来很简单:
echo 100...100;
乍一看,我认为会出现语法错误。但是当我运行代码并看到结果时,我完全感到困惑。结果是
1000.1
所以我想知道这怎么可能发生?
感谢。
答案 0 :(得分:11)
这样读:
(100.) . (.100)
因此它会结束100
和0.1
。
答案 1 :(得分:8)
假设你的意思
echo 100...100;
这样做的原因是PHP的美丽。 :) 该陈述被理解为
100. . .100
相当于
100.0 . 0.1
< =>
'100' . '0.1'
< =>
'1000.1'
答案 2 :(得分:2)
您可以将其视为echo 100 . 0.1
。
答案 3 :(得分:1)
实际上,只有在没有引号的情况下才能起作用:
echo "100...100"; 100...100 << with quotes the . is just a char
echo 100 . 100; 100100 << two concatenated strings "100"
echo 100.100; 100.1 << 100.100 is just a number
echo 100...100; 1000.1 << what you asked
echo 100. . .100; 1000.1 << what PHP actually interprets