国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php自動加載類__autoload()的方法

2024-09-04 11:43:36
字體:
來源:轉載
供稿:網友

作用:當在程序中需要實例化一個類,剛好這這類又不是在本文件中,則需要用包含函數將外部文件包含進來。但是,當要用的外部類很多后,就會發現用包含函數會顯得十分的繁瑣,這是就可以用__autoload()全局函數自動加載類。

當在index.php中要使用前面三個類時,就需要寫三個例如include("name.class.php") 這樣的方法,效率會十分低,但如果使用了__autoload()函數就不用這樣麻煩了,只需要寫這樣一個函數方法就可以了:

在 PHP 5 中,不再需要這樣了。可以定義一個 __autoload() 函數,它會在試圖使用尚未被定義的類時自動調用。通過調用此函數,腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類。

在下例中將通過實例來說明 __autoload() 是如何使用的,首先定義一個類ClassA,文件名為ClassA.class.php,實例代碼如下:

  1. class ClassA{  
  2.  public  function funa(){  
  3.    echo "classA  loaded successfully!<br>";  
  4.   }  

然后在相同目錄下再定義另一個類ClassB,文件名為ClassB.class.php,ClassB繼承ClassA,實例代碼如下:

  1. <?php 
  2.  class ClassB extends ClassA {  
  3.  public function funb(){  
  4.                                                         
  5.    echo "classB also loaded successfully!<br>";  
  6.   }  
  7.  } 
  8. ?> 

最后在與上面兩個文件相同目錄下再定義一個autoload.php(這個文件名隨便取),實例代碼如下:

  1. <?php  
  2. function __autoload($class_name) {  
  3.     require_once ("./".ucfirst($class_name).'.class.php');//ucfirst使類名首字母轉換為大寫  
  4. }  
  5.  $obj = new ClassB();  
  6. $obj->funa();  
  7. $obj->funb();  
  8. ?> 

運行autoload.php的程序,看結果:

classA loaded successfully!

classB also loaded successfully!

實例:文件夾下有這樣幾個文件:

  1. User.class.php; 
  2. Person.class.php; 
  3. Message.class.php; 
  4. index.php; 

我們就可以這樣操作,代碼如下:

index.php

  1. function __autoload($className){     //ucfirst() 將字符串首字母變為大寫 
  2. include("ucfirst($className)".class.".php"); } 

例如:在index.php文件中實例化User.class.php中的User類,如果不存在則自動調用__autoload()函數,代碼如下:

  1. //將類名User作為參數傳入 
  2. *************/ 
  3. $user=new User(); 
  4. //通過自動加載類調用User.class.php文件 
  5. $person=new Person(); 
  6. //通過自動加載類調用Person.class.php文件 
  7. $Message=new Message(); 
  8. //通過自動加載類調用Message.classphp文件 function="" message="new" person="new" user="new"> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 莱州市| 新竹市| 炉霍县| 沁源县| 临猗县| 张北县| 凤山县| 阿拉善盟| 望奎县| 平远县| 肇庆市| 孝昌县| 宿迁市| 稷山县| 陆丰市| 新津县| 漠河县| 桑日县| 扬中市| 奉新县| 永平县| 新平| 浦东新区| 开封县| 万宁市| 南川市| 辰溪县| 石门县| 城市| 峨眉山市| 玉林市| 赣榆县| 海原县| 衡水市| 海门市| 清流县| 黄梅县| 汝州市| 张家港市| 清流县| 崇礼县|