1

PHP.netでは、__autoloadの説明に「未定義のクラスをロードしようとしています」と記載されています。ただし、「クラスの自動ロードを有効にする」関数を定義できると記載されています。したがって、次のように関数を定義するとします。

function __autoload($className) {
    if (file_exists(ROOTDIRECTORY . $className . '.class.php')) {
        require_once(ROOTDIRECTORY . $className . '.class.php');
    }
}

__autoloadはまだ定義されていないクラスのみをロードしますか、それとも上記で記述された関数の内臓はこの機能をオーバーライドしますか?

4

2 に答える 2

3

はい、まだ含まれていないクラスに対してのみトリガーされます。これは、PHPがバックグラウンドで実行しなければならないオーバーヘッド処理の量を減らすrequire_once()より単純なものに置き換えることができることを意味します。require()

else { return false; }また、 PHPがクラスファイルを見つけられない場合に適切なエラーをトリガーするように、関数にを追加する必要があります。

于 2012-11-30T22:25:42.737 に答える
1

class_existsこの関数は、関数がを返す場合にのみ呼び出されますfalse

于 2012-11-30T21:53:24.250 に答える