The static keyword is known to be a free agent.
You can declare a method "static" either by writing:
protected static function foo() {
// lots of self:: code in here
}
Or:
static protected function bar() {
// lots of self:: code in here
}
I just came across code that read:
static protected static function foobar() {
// lots of self:: code in here
}
Surely it's a typo from the original author, but why is PHP accepting this as a valid statement?
UPDATE The version in question is PHP 5.2.16. I just confirmed, this is valid too:
static static static public static function foobar() {
// lots ...
}