PHP: из-за чего странное поведение при статическом вызове метода?
Это такой небольшой глюк PHP. До тех пор, пока в функции foo() нет обращения к нестатическим переменным, вроде $this, её можно будет вызывать статическим способом.
Подробнее  здесь