ホームページ > バックエンド開発 > PHPチュートリアル > 2 つの PHP 自動読み込み実装方法の詳細な例

2 つの PHP 自動読み込み実装方法の詳細な例

伊谢尔伦
リリース: 2023-03-12 08:30:02
オリジナル
2796 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート