この記事では、PHP クラスの自動読み込みについて説明します。これを必要な友達に共有します。
最初に HumanModel.php
class HumanModel { public function t() { echo '人类<br >'; } }
// = example = / /
require('./HumanModel.php');$lisi = new HumanModel();$lisi->t(); // 人类
// =クラスの自動読み込み= //
function __autoload($c) { echo '~~~~~~~~~',$c,'~~~~~~~~'; }$ming = new Dog();
// ===注意事項その1===
/*
クラスの自動読み込み
存在しないものをクラスと呼んだ場合,
エラーを報告する前に、__autoload 関数
を使用して介入の機会を取得することもできます
システムは __autoload() 関数
を呼び出し、自動的に「クラス名」を __autoload 関数に渡します
その後、 __autoload 必要なクラスを
*/
function __autoload($c) { echo '我先自动加载'; echo './' . $c . '.php'; echo '<br >'; require('./' . $c . '.php'); }$lisi = new HumanModel();$lisi->t();// 我先自动加载./HumanModel.php// 人类function test() { // 函数内可以写任何合法的PHP代码,包含再声明一个函数/类 class Bird { public static function sing() { echo '百灵鸟放声歌唱!<br >'; } } }// 必须要调用函数然后才能执行内部test(); Bird::sing(); /* Bird::sing(); 未定义类 转到上面类的自动加载函数中,于是报错如下: Warning: require(./Bird.php): failed to open stream: No such file or directory 找不到Bird这个php */
// にロードします ===メモ その 2===
/*
自動ロードは __autoload 関数のみを使用できますか?
答え: いいえ、実際には関数を指定できます
たとえば、zidongjiazai() 関数を使用します
注: 自動読み込みメソッドを作成したことをシステムに通知するには
システム関数 spl_autoload_register を使用して通知します
*/
spl_autoload_register('zidongjiazai');function zidongjiazai($c) { require('./' . $c . '.php'); }$HumanModel = new HumanModel();$HumanModel->t();
/ / ヒント: クラスの静的メソッドを自動ロード関数として登録することもできます
まず HumanModel.php
class HumanModel { public function t() { echo '人类<br >'; } }
// =Example= //
require('./HumanModel.php');$lisi = new HumanModel();$lisi->t(); // 人类
// =自動ロードof the class= //
function __autoload($c) { echo '~~~~~~~~~',$c,'~~~~~~~~'; }$ming = new Dog();
// ===メモパート 1===
/*
クラスの自動ロード
存在しないクラスが呼び出された場合、
エラーを報告する前に、次のこともできます__autoload 関数
を使用して一度取得します 介入の機会
システムは __autoload() 関数
を呼び出し、自動的に「クラス名」を __autoload 関数に渡します
その後、必要なクラスを __autoload でロードできます
*/
function __autoload($c) { echo '我先自动加载'; echo './' . $c . '.php'; echo '<br >'; require('./' . $c . '.php'); }$lisi = new HumanModel();$lisi->t();// 我先自动加载./HumanModel.php// 人类function test() { // 函数内可以写任何合法的PHP代码,包含再声明一个函数/类 class Bird { public static function sing() { echo '百灵鸟放声歌唱!<br >'; } } }// 必须要调用函数然后才能执行内部test(); Bird::sing(); /* Bird::sing(); 未定义类 转到上面类的自动加载函数中,于是报错如下: Warning: require(./Bird.php): failed to open stream: No such file or directory 找不到Bird这个php */
// === 注意事項 その 2===
/*
自動ロードは __autoload 関数のみを使用できますか?
答え: いいえ、実際には関数を指定できます
たとえば、zidongjiazai() 関数を使用します
注: 自動読み込みメソッドを作成したことをシステムに通知するには
システム関数 spl_autoload_register を使用して通知します
*/
spl_autoload_register('zidongjiazai');function zidongjiazai($c) { require('./' . $c . '.php'); }$HumanModel = new HumanModel();$HumanModel->t();
/ / ヒント: 自動ロード機能として使用するクラスの静的メソッドを登録することもできます
関連する推奨事項:
以上がPHPクラスの自動ロードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。