Нестатический метод … не следует называть статически

Я недавно сделал обновление для PHP 5.4, и я получаю сообщение об ошибке статического и нестатического кода.

Это ошибка:

PHP Strict Standards: Non-static method VTimer::get() should not be called statically in /home/jaco/public_html/include/function_smarty.php on line 371 

Это строка 371:

 $timer = VTimer::get($options['magic']); 

Надеюсь, кто-то может помочь.

Related of "Нестатический метод … не следует называть статически"

Это означает, что его следует называть как:

$timer = (new VTimer)->get($options['magic']);

разница между static и non-static заключается в том, что первая не нуждается в инициализации, поэтому вы можете вызвать имя classname затем добавить :: к ней и сразу вызвать метод. вот так:

 ClassName::method(); 

и если метод не является статичным, вам необходимо его инициализировать следующим образом:

 $var = new ClassNmae(); $var->method(); 

Однако в PHP 5.4 вы можете использовать этот синтаксис вместо быстрого вызова:

 (new ClassName)->method(); 

Вы также можете изменить метод как статический:

 class Handler { public static function helloWorld() { echo "Hello world!"; } }