2012-04-07 7 views
0

나는 파일 SQL_config.php이네임 스페이스 및 __autoload

//namespace database; 
//require_once'SQL_config.php'; 

function __autoload($class) 
    { 
    // convert namespace to full file path 
    //$class = 'database/' . str_replace('\\', '/', $class) . '.php'; 
    //require_once($class); 
    require_once $class . '.php'; 
    } 


$connection=database\SQL_config::getInstance(); 

을 작동하지 않습니다. 경고 : require_once (database \ SQL_config.php) [function.require-once] : 스트림을 열지 못했습니다 : C : \ Wamp \ www \ Formular_contact \ index.php에 11 행의 파일이나 디렉토리가 없습니다. 내가 사용하는 모든 버전 그것은 내게 오류를 준다 누군가 나를 도울 수 없습니까?

+0

문제의 제목에 앰퍼샌드를 사용할 때주의하십시오. 나는'__autoload'가 참조로 돌아 왔다고 생각했기 때문에 여기에 들렀습니다. – Dan

답변

0
define(CLASS_DIR, "/path_to_your_classes_to_load/"); 

require_once CLASS_DIR . str_replace('\\', '/', ltrim($className, '\\')) . '.php'; 
+0

작동하지 마십시오. 포함 : 네임 스페이스 데이터베이스; require_once'SQL_config.php '; $ connection = SQL_config :: getInstance(); 작동 하지만 __autoload() 함수를 사용하고 싶습니다. 네임 스페이스 데이터베이스; define ("CLASS_DIR", "database"); function __autoload ($ class) \t { require_once "CLASS_DIR" str_replace ('\\', '/', ltrim ($ class, '\\')). '. php'; \t} $ connection = SQL_config :: getInstance(); 줄 : 치명적인 오류 : 'database \ SQL_config'클래스가 C : \ wamp \ www \ Formular_contact \ index.php의 15 행에 없습니다. – murariubgdn

0

당신은 "/"와 "\"교체해야하고 ONY는 혼수 및 확장자없이 이름을 얻을 것이다으로 새 클래스 이름의 마지막에 ".PHP"를 추가합니다. 경로에 표시된대로 올바른 폴더에 클래스를 찾습니다.

function __autoload($className){ 
    $newClassName= str_replace("\\", "/", $className) .".php"; 
    require_once($newClassName); 
} 

당신이 그런

클래스 폴더에있는 경우 ./database/SQL_config.php

로 올바른 폴더에 클래스 파일을 찾을 수 있는지 확인 "클래스"대신 사용해보십시오.

function __autoload($className){ 
    $newClassName = "classes/"; 
    $newClassName .= str_replace("\\", "/", $className) .".php"; 
    require_once($newClassName); 
} 

당신이 제시 코드에서 같은

./classes/database/SQL_config.php

을 올바른 폴더에 클래스 파일을 찾을 수 있는지 확인 - 위치를 클래스 파일의 파일 구조에서 또한 중요합니다.