ここでは、この機能のいくつかの特徴を実験を通して説明します。
関数プロトタイプ
bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
バージョン互換
PHP 5 >= 5.1.2
実験プロセス
最初のステップ、spl_autoload_register() 関数を使用して、load() メソッドを登録します
コードをコピーします コードは次のとおりです。
}
spl_autoload_register('load');
?>
lib.php ファイルのコードは次のとおりです
コードは次のとおりです:
class className{ function method(){ echo ' クラス内のメソッド'; }
}
functiononlyMethod(){
echo 'メソッドのみ'
?> php ファイルは className クラスとonlyMethod 関数です
2 番目のステップ、自動的にロードされたクラスを呼び出します
コードをコピーします
コードは次のとおりです。
$class = new className(); >method();
onlyMethod();
出力: クラス内のメソッド メソッドのみ 命令: className クラスをインスタンス化し、クラスのメソッド() 関数を呼び出し、同時に出力は正常であり、エラーは発生しません。
3 番目のステップは、関数
onlyMethod( : 4 つのステップで、className クラスをインスタンス化し、次に
$class = new className(); を直接呼び出します。
onlyMethod();
出力: メソッドのみ
上記の 4 ステップの実験から、ロードされたファイルに関数が含まれている場合は、内部のクラスをインスタンス化する必要があることがわかりました。そうしないと、例外が発生し、未定義への呼び出しが行われます。機能エラーが発生しますのでご注意ください。
参加情報: spl_autoload_register
http://www.bkjia.com/PHPjc/324679.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/324679.html
技術記事
ここでは、この機能のいくつかの特徴を実験を通して説明します。 関数プロトタイプ bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]...