目次
spl_autoload_register() と __autoload()、splautoloadregister の違い
ホームページ バックエンド開発 PHPチュートリアル spl_autoload_register() と __autoload() の違い、spl_autoloadregister_PHP チュートリアル

spl_autoload_register() と __autoload() の違い、spl_autoloadregister_PHP チュートリアル

Jul 12, 2016 am 08:59 AM
autoload spl 違い そして

spl_autoload_register() と __autoload()、splautoloadregister の違い

この記事では主に spl_autoload_register() と __autoload() の違いを紹介しますので、必要な方は参考にしてください。 ​

spl_autoload_register() と __autoload() については、ほとんどの人が前者を選択すると思います。 両方の使用法を見てください:

コードをコピーします コードは次のとおりです。
//__autoload の使用法
function __autoload($classname)
{
$filename = "./class/".$classname.".class.php";
if (is_file($filename))
{
include $filename }
if(is_file($ filename))



spl_autoload_register() を使用する利点は、言葉では言い表せません:
(1) オブジェクトを自動的にロードする方が便利で、多くのフレームワークがこれを実行します:



コードをコピーします
コードは次のとおりです。 LClass ClassAutoloader {
Public Function __ConStruct () {
spl_autoload_register (Array ($ this, 'loader')); {
echo 'ロードしようとしています', $ className, 'via' , __METHOD__, "()n" ;

include $className ;

}

}

$autoloader = new ClassAutoloader();

$obj = new Class1();$obj = new Class2( );

(2) __autoload() 関数は 1 回しか存在できないことを知っておく必要があります。 もちろん、spl_autoload_register() は複数の関数を登録できます。


コードをコピーします
コードは次のとおりです。
function a () {
include 'a.php';
}
function b () {
include 'b.php';
}
spl_autoload_register('a')
spl_autoload_register('b');

(3) SPL 関数は豊富で、登録済み関数の登録を解除する spl_autoload_unregister() や、登録されているすべての関数を返す spl_autoload_functions() など、より多くの関数を提供します。


詳細については、PHP リファレンス マニュアルを参照してください: SPL 関数リストについて

注:

__autoload 関数がプログラムに実装されている場合は、明示的に __autoload スタックに登録する必要があります。
spl_autoload_register() 関数は Zend Engine の __autoload 関数を spl_autoload() または spl_autoload_call() に置き換えるためです

コードをコピーします
コードは次のとおりです。
/***__autoload メソッドは、spl_autoload_register の後は無効になります。これは、autoload_func 関数ポインターが既に spl_autoload メソッドを指しているためです。
* 次のメソッドを通じて、_autoload メソッドを autoload_functions リストに追加できます

*/
spl_autoload_register( '__autoload' );





http://www.bkjia.com/PHPjc/1099423.html

www.bkjia.com

本当
http://www.bkjia.com/PHPjc/1099423.html

技術記事

spl_autoload_register() と __autoload()、spl_autoloadregister の違い この記事では主に spl_autoload_register() と __autoload() の違いを紹介します。必要な方は spl_...

に関する情報を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Deepseek R1とV3バージョンの違いは何ですか Deepseek R1とV3バージョンの違いは何ですか Feb 19, 2025 pm 03:24 PM

Deepseek R1とV3バージョンの違いは何ですか

ビットコインには株式がありますか? ビットコインには株式がありますか? Mar 03, 2025 pm 06:42 PM

ビットコインには株式がありますか?

DeepSeek使用のためのFAQの概要 DeepSeek使用のためのFAQの概要 Feb 19, 2025 pm 03:45 PM

DeepSeek使用のためのFAQの概要

市場前取引とアフターマーケット取引の違いは何ですか?市場前と市場外の取引の違いの詳細な説明 市場前取引とアフターマーケット取引の違いは何ですか?市場前と市場外の取引の違いの詳細な説明 Mar 03, 2025 pm 11:54 PM

市場前取引とアフターマーケット取引の違いは何ですか?市場前と市場外の取引の違いの詳細な説明

なぜビテンサーはAIトラックの「ビットコイン」と言われているのですか? なぜビテンサーはAIトラックの「ビットコイン」と言われているのですか? Mar 04, 2025 pm 04:06 PM

なぜビテンサーはAIトラックの「ビットコイン」と言われているのですか?

韓国のビットコインと国内のビットコインに違いはありますか? 韓国のビットコインと国内のビットコインに違いはありますか? Mar 05, 2025 pm 06:51 PM

韓国のビットコインと国内のビットコインに違いはありますか?

垂直プロキシ:アプリケーションシナリオと暗号化の破壊的可能性の解釈ネイティブプロキシ 垂直プロキシ:アプリケーションシナリオと暗号化の破壊的可能性の解釈ネイティブプロキシ Mar 04, 2025 am 10:21 AM

垂直プロキシ:アプリケーションシナリオと暗号化の破壊的可能性の解釈ネイティブプロキシ

Pepeは大規模に購入して売り切れ、Mutmは2025年により賢い投資ですか? Pepeは大規模に購入して売り切れ、Mutmは2025年により賢い投資ですか? Mar 03, 2025 pm 07:09 PM

Pepeは大規模に購入して売り切れ、Mutmは2025年により賢い投資ですか?

See all articles