0

helper.php : index.php の先頭に必要

function __autoload($className) {

    $path = ROOT_DIR.'/class/'.strtolower(trim($className)).'.class.php';

    if (file_exists($path)) {
        require_once($path);
    }
}

function load_libs($class_variable_name) {

    global $session;
    global $_libs;

    $_libs[$class_variable_name] = new $class_variable_name($session);

    return $_libs[$class_variable_name];
}

index.php から、クラスのインスタンスを作成します。

new some_class_one();

問題ありません。__autoload を介してクラス ファイルをロードします。

しかし、私が呼び出す場合:

load_libs('some_class_two');

エラーが発生しました: Fatal error: Class 'some_class_two' not found in C:\wamp\www\helper.php on line

どうすればいいですか?

4

1 に答える 1

0

これを自分のマシンでテストしたところ、完全に機能します。問題を再現できませんでした。これは私が実行しているPHPのバージョンです:

$ php -v
PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

.classファイル名からを削除することをお勧めします。名前空間を使用し、名前空間/クラス名をファイルシステムと一致させることをお勧めします。それ以外は、あなたROOT_DIRが間違っているか、ファイルが間違った場所にあります。

于 2013-12-20T15:27:37.393 に答える