Статический метод по умолчанию?

Я только недавно обнаружил это странное поведение в своем проекте.

У меня есть метод, который я случайно определил как просто функцию (это должна быть public static), а потом я вызвал этот метод статически — и он все равно работал! Почему это?

class C {
   function n() {
      ...
   }
}

$y = C::n();  // This works, method is performed as intended, and without errors

Кстати, я использую версию 5.4.


person silkfire    schedule 22.10.2013    source источник
comment
Взгляните на эту тему. stackoverflow.com/questions/3754786/ И также вы можете даже увидеть предупреждение, если у вас есть строгая отчетность по   -  person Sajuna Fernando    schedule 22.10.2013
comment
Любой доступный метод может быть вызван в статическом контексте, только будет выдано предупреждение и, очевидно, любая ссылка на $this вызовет ошибку.   -  person AlexP    schedule 22.10.2013
comment
@AlexP Я вообще не получаю предупреждений =/   -  person silkfire    schedule 22.10.2013