Я недавно сделал обновление для 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']);
Надеюсь, кто-то может помочь.
Это означает, что его следует называть как:
$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!"; } }