-2

私はいつも次のように書いています。

function __autoload($className){
   if(file_exists($className)){
       include $classname . '.class.php';
   }
}

しかし、私は何人かのコーダーが次のように書いているのを見つけました:

sql_autoload_register(function($className){
   $class = str_replace('\\', '/', $className);
   require_once($className);
});

そこで、sql_autoload_register と __autoload の違いをお聞きしたいのですが、よろしくお願いします!

4

1 に答える 1

1

PHP ドキュメントspl_autoload_registerから。太字の部分は、より多くのアイデアを与えるかもしれません。

spl が提供する __autoload スタックに関数を登録します。スタックがまだアクティブ化されていない場合は、アクティブ化されます。

コードに既存の __autoload() 関数がある場合、この関数を明示的に __autoload スタックに登録する必要があります。これは、spl_autoload_register() が spl_autoload() または spl_autoload_call() によって __autoload() 関数のエンジン キャッシュを効果的に置き換えるためです。

複数のオートロード関数が必要な場合は、spl_autoload_register() でこれが可能になります。自動ロード関数のキューを効果的に作成し、定義された順序で各関数を実行します。対照的に、__autoload() は 1 回しか定義できません。

編集:この回答はhttps://stackoverflow.com/a/6894585/710827に役立つはずです

于 2013-03-04T02:31:53.740 に答える