php類的自動載入操作執行個體詳解_php技巧

來源:互聯網
上載者:User

本文執行個體講述了php類的自動載入操作。分享給大家供大家參考,具體如下:

類的自動載入

在外面的頁面中,並不需要去引入類檔案,但程式會在需要一個類的時候自動去“動態載入”該類。

① 建立一個對象的時候new

② 直接使用一個類名(操作靜態屬性與方法)

使用__autoload魔術函數

當出現兩種情況時候,就會調用該函數,該函數需要我們預先定義,在其中寫好載入類檔案的通用語句

function __autoload($name){  require './lib/'.$name.'.class.php';}

使用spl_autoload_register()

用它註冊(聲明)多個可以代替__autoload()作用的函數,自然也得去定義這些函數,並且函數的作用跟__autoload()作用一樣,不過此時可以應對更多的情形

//註冊用於自動載入的函數spl_autoload_register("model");spl_autoload_register("controll");//分別定義兩個函數function model($name){  $file = './model/'.$name.'.class.php';  if(file_exists($file)){    require './model/'.$name.'.class.php';  }}//如果需要一個類,但當前頁面還沒載入該類//就會依次調用model()和controll(),直到找到該類檔案載入,否則就報錯function controll($name){  $file = './controll/'.$name.'.class.php';  if(file_exists($file)){    require './controll/'.$name.'.class.php';  }}
//若註冊的是方法而不是函數,則需要使用數組spl_autoload_register(  //非靜態方法  array($this,'model'),  //靜態方法  array(__CLASS__,'controller'));

項目情境應用

//自動載入//控制器類 模型類 核心類//對於所有的類分為可以確定的類以及可以擴充的類spl_autoload_register('autoLoad');//先處理確定的架構核心類function autoLoad($name){  //類名與類檔案對應數組  $framework_class_list = array(    'mySqldb' => './framework/mySqldb.class.php'  );  if(isset($framework_class_list[$name])){    require $framework_class_list[$name];  }elseif(substr($name,-10)=='Controller'){    require './application/'.PLATFORM.'/controller/'.$name.'.class.php';  }elseif(substr($name,-6)=='Modele'){    require './application/'.PLATFORM.'/modele/'.$name.'.class.php';  }}

更多關於PHP相關內容感興趣的讀者可查看本站專題:《php物件導向程式設計入門教程》、《PHP基本文法入門教程》、《PHP運算與運算子用法總結》、《PHP網路編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》

希望本文所述對大家PHP程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.