Tôi đã tạo một lớp nạp tự động hoạt động như dự định, nhưng tôi đã nhận thấy một hành vi kỳ quặc. Khi tôi lặp lại kết quả của các lớp được tìm thấy được chuyển đến phương thức xử lý hàm spl_autoload_register()
. Tôi thấy rằng tôi đã tăng gấp đôi. Giống như nếu kịch bản được gọi là hai lần, và bởi vì nó là một singleton dữ liệu xây dựng 2 mảng trong trường hợp của tôi.php singleton giữ tự gọi hai lần trong một lớp tự động nạp
Tôi đang sử dụng phương pháp này để tạo singleton tôi
public static function init()
{
if (!isset(self::$instance))
self::$instance = new self();
return self::$instance;
}
tôi sau đó có các nhà xây dựng chế độ riêng tư. Tôi đã đi qua từng phương pháp gỡ lỗi cố gắng để xem nơi nó xuất hiện để tạo ra một bản sao của chính nó.
Tôi nghi ngờ rằng các lớp và lớp học của tôi cho vấn đề đó đang được nhân bản ở đâu đó trong hàm spl_autoload_register().
bất kỳ trợ giúp nào sẽ được đánh giá cao.
Bạn đã thiết lập các chức năng __clone cho phù hợp? – busypeoples
Bạn có thể đăng mã lớp hoàn chỉnh không? – busypeoples
okays, posted. Nếu tôi chạy nó như một cá thể không singleton thì nó sẽ không tự nhân bản. – Eli