PHP Không thể khai báo lại lớp

Tôi vừa tiếp quản một trang web và phải xây dựng lại trang web bằng trình soạn nhạc. Nếu vẫn giữ nguyên chức năng loft_data_grids_boot(), việc sử dụng drush để xóa bộ đệm sẽ dẫn đến thông báo lỗi

PHP Fatal error: Cannot redeclare class AKlump\LoftDataGrids\DrupalTableExporter in /...../public/sites/all/modules/contrib/loft_data_grids/includes/DrupalTableExporter.php on line 7

Tuy nhiên, vá mã
require_once dirname(__FILE__) . '/vendor/autoload.php';
dẫn đến báo cáo trạng thái rằng "Đã tìm thấy các phụ thuộc Loft Data Grids nhưng không được tải; xem README để biết hướng dẫn cài đặt. "

Thư mục nhà cung cấp/aklump được sao chép trong cả thư mục nhà cung cấp do mô-đun cung cấp và thư mục nhà cung cấp mà phần còn lại của nhà soạn nhạc tạo ra, điều này gây ra xung đột này vì mô-đun dường như đang sao chép một số quy trình khởi động mà một trang web được xây dựng bởi nhà soạn nhạc đã sẵn sàng

Vài ngày trước, chúng tôi đã gặp thông báo lỗi này do khách hàng của chúng tôi không thể tiếp tục viết mã trong một thời gian dài

Tại Bobcares, chúng tôi thường nhận được yêu cầu sửa các lỗi nghiêm trọng của PHP, như một phần của Dịch vụ quản lý máy chủ của chúng tôi

Hôm nay, chúng ta sẽ tìm hiểu sâu về các lỗi nghiêm trọng của PHP và xem các Kỹ sư hỗ trợ của chúng ta khắc phục chúng như thế nào

Tại sao xảy ra lỗi nghiêm trọng PHP?

Chúng tôi đã thấy nhiều khách hàng của mình gặp phải lỗi này. Thông thường, lỗi này khiến tập lệnh bị chấm dứt ngay lập tức

Về cơ bản, 'Lỗi nghiêm trọng PHP không thể khai báo lại lớp' chỉ ra rằng tên lớp đã tồn tại

Thông thường, lỗi này xuất hiện khi người dùng đang thêm một số mã PHP mới. Nhưng các trang web WordPress cũng hiển thị lỗi tương tự do xung đột plugin hoặc chủ đề

Hãy xem cả hai trường hợp này một cách chi tiết

1. Lỗi khi mã hóa

Lỗi nghiêm trọng PHP là khá phổ biến trong khi viết mã. Các nhà phát triển thường nhận được thông báo lỗi khi cố gắng khai báo một lớp đã tồn tại. Thông báo lỗi xuất hiện dưới dạng

PHP Fatal error: Cannot redeclare class.

Tại điểm lỗi này, tập lệnh kết thúc

Gần đây, một trong những khách hàng của chúng tôi đã tiếp cận chúng tôi với lỗi này. Vì vậy, chúng tôi đề nghị anh ấy tránh sử dụng lớp đã có sẵn trong mã hóa tiếp theo

Nhưng lớp mới được tạo bởi khách hàng của chúng tôi cũng đưa ra lỗi tương tự. Vì vậy, chúng tôi đã cung cấp cho anh ấy lệnh dưới đây để khắc phục sự cố

include_once "xxxx.php";

Đây XXXX là tên lớp mới

2. Lỗi không thể khai báo lại lớp trong WordPress

Đôi khi, các trang web WordPress hiển thị lỗi nghiêm trọng không thể khai báo lại lớp

Thông thường, trang WordPress dựa trên PHP hiển thị lỗi này sau khi cài đặt plugin hoặc chủ đề mới. Một thông báo lỗi điển hình trong WordPress trông giống như

PHP Không thể khai báo lại lớp

Khi khách hàng của chúng tôi tiếp cận chúng tôi với thông báo lỗi này, Nhóm hỗ trợ của chúng tôi sẽ kiểm tra lý do gây ra lỗi

Trong hầu hết các trường hợp, lỗi sẽ xảy ra với việc sử dụng cùng một lớp trong hàm. tập tin php và plugin. Vì vậy, để khắc phục lỗi này, chúng tôi vô hiệu hóa plugin và cài đặt phiên bản mới nhất

[Cần trợ giúp trong việc sửa các lỗi nghiêm trọng của PHP? . ]

Phần kết luận

Nói tóm lại, lỗi nghiêm trọng PHP không thể khai báo lại lớp xảy ra do sử dụng lại tên lớp đã tồn tại hoặc plugin trong các trang web WordPress. Hôm nay, chúng tôi đã xem cách Kỹ sư hỗ trợ của chúng tôi khắc phục lỗi này cho khách hàng của chúng tôi

NGĂN CHẶN MÁY CHỦ CỦA BẠN KHỎI SỰ CỐ

Không bao giờ mất khách hàng vì tốc độ máy chủ kém. Hãy để chúng tôi giúp bạn

Các chuyên gia máy chủ của chúng tôi sẽ giám sát và bảo trì máy chủ của bạn 24/7 để nó luôn hoạt động nhanh và an toàn

Đôi khi nó sẽ chỉ in một lần, mặc dù lớp của bạn được đưa vào hai lần trở lên. Điều này là do PHP thực sự phân tích cú pháp tất cả các lớp cấp cao nhất trong một tệp trước khi thực thi bất kỳ mã nào và đưa ra lỗi nghiêm trọng ngay lập tức. Để khắc phục điều này, hãy bọc khai báo lớp của bạn trong if(true) { .. }, điều này sẽ chuyển lớp của bạn xuống một mức trong phạm vi. Sau đó, bạn sẽ nhận được hai dấu vết của mình trước các lỗi nghiêm trọng của PHP

Điều này sẽ giúp bạn tìm thấy nơi lớp học của bạn được đưa vào nhiều lần trong một dự án phức tạp

Làm cách nào để khai báo lại trong PHP?

PHP không cho phép khai báo lại hàm . Nếu bạn viết hàm ban đầu, có rất nhiều cách cho phép bạn viết hàm linh hoạt hơn. Có điều kiện đối với các đối số được truyền và móc lọc, là điều đầu tiên xuất hiện trong đầu tôi.

Làm cách nào để sửa lỗi nghiêm trọng trong PHP?

Lỗi nghiêm trọng về thời gian biên dịch. Lỗi này xảy ra nếu lệnh gọi được thực hiện với một mã hoặc biến không tồn tại. .
Tìm các biến không được khai báo như được đưa ra trong lỗi
Nếu bạn đang sử dụng các hàm có sẵn, hãy đảm bảo rằng không có lỗi đánh máy và gọi đúng hàm
Kiểm tra xem chính tả có đúng không