spl_autoload, 네임 스페이스 및 동적 클래스 이름을 실험하는 동안 "이상한"일이 발생했습니다. PHP 5.3.2를 사용합니다. 자동로드를 다음과 같이 호출하십시오.PHP 네임 스페이스와 동적 클래스 이름
set_include_path(get_include_path().PATH_SEPARATOR."classes".PATH_SEPARATOR."utils");
spl_autoload_extensions(".class.php");
spl_autoload_register();
이제 코어를 사용하십시오. 코드를 다음과 같은 제안이 잘 작동
new \User\Student;
$name="\User\Student";
new $name();
, 파일 클래스/사용자/student.class.php가 성공적으로로드됩니다, 모두 구조 성공. 그러나 조금 다른 사용법 :
$name="\User\Student";
new $name();
new \User\Student;
"..Class \ User \ Student로드 할 수 없습니다 ..."에서 실패합니다. 어떻게 든 정적/동적 네임 스페이스 해상도와 관련되어야한다고 제안합니다. 그러나, 나는 그들이 처리되는 시간 (컴파일과 런타임)을 제외하고는이 두 가지 사이에 어떤 차이가 있어야한다고 생각하지 않는다.
설명해 주셔서 감사합니다.
문자열에서 선행 백 슬래시를 제거하십시오. 동적 클래스 이름은 항상 정규화되어 있으므로 백 슬래시를 추가하는 것은 바람직하지 않습니다. – NikiC