为什么这种语法有效?

Bog*_*dan 6 php

我今天回答了一个问题,它有一个简单的解决方案,但我还没理解为什么PHP解释器没有抛出语法错误.所以我的问题很简单:

为什么下面的陈述被认为具有有效的语法?

SomeIdentifier:;
AnythingGoesApparently:;
ThisCanGoOnAndOn:;
Run Code Online (Sandbox Code Playgroud)

更是如此,因为这些标识符没有在任何地方定义.


据我所知,冒号:只用作两个运算符的一部分:范围解析运算符,三元运算符,但不是它自己的.它也用于控制结构Alternative语法.但在这种情况下,这些都不符合条件,所以这就像疯了一样困扰着我.

kun*_*ruh 6

我相信这些会被解释为goto标签.

例如:

$x = 0;
goto ThisIsBad;
$x++;

ThisIsBad:
$x += 2;

echo $x;
Run Code Online (Sandbox Code Playgroud)

输出: 2

参考:http://php.net/manual/en/control-structures.goto.php