2012-04-07 31 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

作業しないでください。 with: 名前空間データベース。 require_once'SQL_config.php '; $ connection = SQL_config :: getInstance(); working __autoload()関数を使用したいと思います。 名前空間データベース。 define( "CLASS_DIR"、 "database"); 機能__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

として正しいフォルダ内のクラスファイル探していることを確認してください - あなたのクラスファイルの場所をファイル構造でも重要です。