最近、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 ClassName();
$var->method();
ただし、PHP 5.4では、代わりにこの構文を略記として使用できます。
(new ClassName)->method();
次のようにメソッドを静的に変更することもできます。
class Handler {
public static function helloWorld() {
echo "Hello world!";
}
}