php自動読み込みの実装方法は2つあるので、困っている友達は参考にしてください。
PHP を自動的にロードするには 2 つの方法があります
1 つ目のオプションは autoload を使用することです
ただし、解決されていない問題が 1 つあります。それは、ファイルが以前に存在するかどうかを判断する問題です。
set_include_path('aa' . PATH_SEPARATOR . get_include_path()); function autoload($className) { //如果加这个检测, 因为此文件不在当前目录下,它就会检测不到文件存在, //但include是能成功的 if (file_exists($className . '.php')) { include_once($className . '.php'); } else { exit('no file'); } } $a = new Acls();
2 つ目 このソリューションでは、spl を使用して自動的にロードします。
spl_autoload_register()
簡単な例では、最初に spl_autoload() を呼び出して「.php」プログラムを見つけます。デフォルトの検索拡張子は「.ini」です。拡張子が見つからない場合は、
functionloader1($class)
{ functionloader1($class) {
//自分で読み込みコードを書いてください
}
functionloader2($class)
{
//loader1() が見つからない場合は、私があなたのところに行きます
spl_autoload_register('loader1');
spl_autoload_register( 'loader2');
他にもあります...
MVC フレームワークが自動ロードを実装する方法
最初にパスを設定します
'include' => array( 'application/catalog /controllers', 'application /catalog/models', ),$include = array('application/controllers', 'application/models', 'application/library');
set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR) , $config['include ']));
URLを取得したら、コントローラーとメソッドを解析します
その後、自動読み込みを設定します
コードは次のとおりです:
set_include_path('aa' . PATH_SEPARATOR . get_include_path()); //function autoload($className) //{ // if (file_exists($className . '.php')) { // include_once($className . '.php'); // } else { // exit('no file'); // } //} spl_autoload_register(); $a = new Acls();
Route、コントローラーをインスタンス化して呼び出します。メソッドを入力すると、書いたものが実行されます
コードは次のとおりです:
class Loader { /** * 自动加载类 * @param $class 类名 */ public static function autoload($class) { $path = ''; $path = str_replace('_', '/', $class) . '.php'; include_once($path); } } /** * sql自动加载 */ spl_autoload_register(array('Loader', 'autoload'));
以上が2 つの PHP 自動読み込み実装方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。