Hướng dẫn php 8 non static method cannot be called statically - php 8 non static method không thể được gọi là statically
Php 8.0 không còn cho phép gọi các phương thức lớp không tĩnh với toán tử gọi tĩnh (no___trans___pre___9). Gọi các phương thức không tĩnh đã nêu ra một thông báo không nhận PHP trong tất cả các phiên bản PHP 7 và nêu ra một thông báo tiêu chuẩn nghiêm ngặt trong các phiên bản PHP 5.
Trong PHP 8.0 trở lên, điều này dẫn đến một lỗi nghiêm trọng:
Thay đổi này được thực hiện trong toàn bộ động cơ. Chức năng biến
Đồ gọiPHP không còn coi một mảng có tên lớp và phương thức (no___trans___pre___11) là một cuộc gọi hợp lệ và dẫn đến một lỗi nghiêm trọng. Điều này bao gồm các chức năng cốt lõi của PHP mong đợi một cuộc gọi. Nếu việc gọi đó được chuyển đến một hàm mong đợi một cuộc gọi hợp lệ, thì NO___Trans___Pre___12 sẽ bị ném thay vì lỗi nghiêm trọng tại giờ gọi.
Điều này ảnh hưởng đến tất cả các chức năng từ no___trans___pre___13 và no___trans___pre___14 đến no___trans___pre___15, no___trans___pre___16, no___trans___pre___16.
class Foo {
public function bar() {}
}
['Foo', 'bar']();
// Fatal error: Uncaught Error: Non-static method Foo::bar() cannot be called statically in ...:... |