의도 한대로 작동하는 오토로더 클래스를 만들었지 만 이상한 행동을 발견했습니다. 내가 찾은 클래스의 결과가 spl_autoload_register()
함수를 처리하는 메소드에 전달된다. 나는 내가 두 배나되는 것을보고있다. 스크립트가 두 번 호출되고, 그 싱글 톤 데이터가 내 경우에 2 개의 배열을 만들기 때문에. 내 싱글에게PHP 싱글 톤이 오토로더 클래스에서 두 번 계속 호출 함
public static function init()
{
if (!isset(self::$instance))
self::$instance = new self();
return self::$instance;
}
을 만들려면이 방법을 사용하고
그때 비공개로 설정 생성자가 있습니다. 각 메소드가 자신의 클론을 생성하는 것으로 보이는 곳을 디버깅하면서 보았습니다.
그 문제에 대한 클래스와 클래스가 spl_autoload_register() 함수의 어딘가에서 복제 된 것으로 의심됩니다.
어떤 도움을 주시면 감사하겠습니다.
당신이 따라 __clone 기능을 설정 //? – busypeoples
전체 클래스 코드를 게시 할 수 있습니까? – busypeoples
오케이, 게시 됨. 만약 내가이 아닌 싱글 톤 인스턴스를 실행하면 자체 복제되지 않습니다. – Eli