搜尋
首頁php教程php手册php自动加载类__autoload()的方法

php自动加载类__autoload()的方法

Jun 13, 2016 am 09:51 AM
autoloadphp一下介紹關於載入文章方法簡單類別自動

本文章来给大家简单的介绍一下关于php自动加载类__autoload()的方法,希望此方法对各位同学会有所帮助哦。

作用:当在程序中需要实例化一个类,刚好这这类又不是在本文件中,则需要用包含函数将外部文件包含进来。但是,当要用的外部类很多后,就会发现用包含函数会显得十分的繁琐,这是就可以用__autoload()全局函数自动加载类。

当在index.php中要使用前面三个类时,就需要写三个例如include("name.class.php") 这样的方法,效率会十分低,但如果使用了__autoload()函数就不用这样麻烦了,只需要写这样一个函数方法就可以了:

在 PHP 5 中,不再需要这样了。可以定义一个 __autoload() 函数,它会在试图使用尚未被定义的类时自动调用。通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。

在下例中将通过实例来说明 __autoload() 是如何使用的。


首先定义一个类ClassA,文件名为ClassA.class.php

 代码如下 复制代码

 class ClassA{ 

 public  function funa(){ 

   echo "classA  loaded successfully!
"; 

  } 

}

然后在相同目录下再定义另一个类ClassB,文件名为ClassB.class.php,ClassB继承ClassA

 

 代码如下 复制代码

 class ClassB extends ClassA { 

 public function funb(){ 

                                                       

   echo "classB also loaded successfully!
"; 

  } 

 }

最后在与上面两个文件相同目录下再定义一个autoload.php(这个文件名随便取)

 代码如下 复制代码

 

function __autoload($class_name) { 

    require_once ("./".ucfirst($class_name).'.class.php');//ucfirst使类名首字母转换为大写 

 $obj = new ClassB(); 

$obj->funa(); 

$obj->funb(); 

?>

运行autoload.php的程序,看结果:

classA loaded successfully!

classB also loaded successfully!


例子: 文件夹下有这样几个文件:

User.class.php;
Person.class.php;
Message.class.php;
index.php;


我们就可以这样操作

 代码如下 复制代码

index.php

function __autoload($className){     //ucfirst() 将字符串首字母变为大写

include("ucfirst($className)".class.".php"); }

/**************

*例如:在index.php文件中实例化User.class.php中的User类,如果不存在则自动调用__autoload()函数

 代码如下 复制代码

*,将类名User作为参数传入

*************/

$user=new User();

//通过自动加载类调用User.class.php文件

$person=new Person();

//通过自动加载类调用Person.class.php文件

$Message=new Message();

//通过自动加载类调用Message.classphp文件 function="" message="new" person="new" user="new">

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)