为什么此代码段不会引发错误?

时间:2019-02-23 16:56:20

标签: php syntax

我遇到了一些我无法解释的东西,为什么它不会在PHP中引发错误。抱歉,对于某些人来说这很明显,或者以前已经回答过。

这不会引起任何问题,它只是观察和寻求理解。我想知道是否有人知道为什么会这样?我只是很好奇,因为它似乎根本不起作用。我想念什么?

已测试PHP版本:PHP v7.2.12

    <?php
    class FooBar
    {
        public function foo()
        {
            anythingIWantToWrite: // this doesn't throw an error?
            return "foo";
        }

        public function baz()
        {
            baz: 'foobar'; // this doesn't throw an error?
            return "bar";
        }
    }


    $class = new FooBar();

    echo $class->foo()."\n";
    echo $class->baz();

1 个答案:

答案 0 :(得分:6)

因为这是docs,即使您实际上并没有使用它。基本上,您的方法中可以包含一个goto语句以转到anythingIWantToWritebaz。你只是没有。

<?php
class FooBar
{
    public function foo()
    {
        goto anythingIWantToWrite;
        echo 'I am skipped';

        anythingIWantToWrite:
        return "foo";
    }

    public function baz()
    {
        goto baz;
        echo 'I am skipped';

        baz: 'foobar'; // 'foobar" is string literal that simply does nothing.
        return "bar";
    }
}


$class = new FooBar();

echo $class->foo()."\n";
echo $class->baz();

valid goto syntax