Re: Static method call with single colon results in fatal error, not aparse error?
| From: | Christoph Becker | Date: | Tue, 12 May 2015 18:49:30 +0000 |
| Subject: | Re: Static method call with single colon results in fatal error, not aparse error? | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-86174@lists.php.net to get a copy of this message | ||
Bishop Bettini wrote:
> class Foo {
> public static function bar() { echo 'bar'; }
> }
> Foo:bar();
>
>
> Note the single colon. According to 3v4l
> <http://3v4l.org/Ot3Fk>...
>
> 5.2.17 and earlier:
> Parse error: syntax error, unexpected ':'
>
> 5.3 and later, including 7 and HHVM:
> Fatal error: Call to undefined function bar()
>
>
> Is this really a run-time fatal error? Unless I missed a memo, surely this
> should be a compile time error.
Foo:bar();
is the same as
Foo:
bar();
so it is parsed as labelled statement, and as such is syntactically
valid since PHP 5.3.
--
Christoph M. Becker