ホームページ  >  記事  >  バックエンド開発  >  PHP で __autoload() を使用して未定義のクラスを自動的にロードする

PHP で __autoload() を使用して未定義のクラスを自動的にロードする

WBOY
WBOYオリジナル
2016-07-25 09:05:451077ブラウズ
  1. /**
  2. * 関連するクラス ライブラリ ファイルを自動的にロードします
  3. */
  4. function __autoload($classname){
  5. if(substr($classname,-6)=="Action"){
  6. APP_PATH.'コントローラーを含む/'.$classname.'.class.php';
  7. }elseif(substr($classname, -5)=="Model"){
  8. include APP_PATH.'models/'.$classname.'.class.php' ;
  9. }elseif($classname=="Smarty"){
  10. include SYSTEM_PATH.'smarty/Smarty.class.php';
  11. }else{
  12. include APP_PATH.'common/'.$classname.'.class.php' ;
  13. }
  14. }
  15. ?>
コードをコピー

パスを含める別の方法:

  1. function __autoload($class_name) {
  2. $path = str_replace('_', DIRECTORY_SEPARATOR, $class_name);
  3. require_once $path.'.php';
  4. }
  5. ?>
コードをコピー

手順: アンダースコアをディレクトリ区切り文字 (DIRECTORY_SEPARATOR) に変換すると、ライブラリ ファイルを効果的に管理し、クロスプラットフォームの問題を解決できます。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。