ThinkPHP中系統提供了三個檔案載入方式:
#函式庫形式載入:
函數庫再ThinkPHP中包含三類:系統函數庫檔案(functions.php)、應用層級函數庫檔案、分組層級函數檔。
這三類函數庫檔案只有系統函數庫檔案(functions.php)是系統預設存在的,而另外兩類函數庫形式需要自行建立。
同時要注意,只有系統函式庫檔案名為functions.php,而另外兩類函式庫形式檔名叫做function.php。
案例:使用函數庫形式定義需要使用的函數。函數名稱:testfunction
<?php function testfunction(){ echo 'testfunction'; } public function test(){ testfunction(); }
展示結果:
#定義好的函數庫檔案中的函數,使用的時候遵循php內建函數語法的要求,直接寫上函數名(參數)就可以了。
說明:
第一:不需要引入function.php,系統在執行的時候自動幫我們引入了檔案function.php檔;
第二:如果函數定義在應用層級的函數庫檔案中,則能在全部的分組(整個應用)使用;如果函數定義在某個分組的函數庫檔案中,則只能在目前的分組中使用,否則會報函數未定義。
透過設定項動態載入:
在系統的執行流程中有一個檔案會被執行到App.class.php
static public function init() { // 加载动态应用公共文件和配置 load_ext_file(COMMON_PATH);
在方法中執行了一個load_ext_file函數。
該方法並不是php內建的方法,而是在系統函數庫檔案中定義的:
#function load_ext_file($path) { // 加载自定义外部文件 if($files = C('LOAD_EXT_FILE')) { $files = explode(',',$files); foreach ($files as $file){ $file = $path.'Common/'.$file.'.php'; if(is_file($file)) include $file; } }
擴充:C方法
C方法也是快速方法之一,其作用是操作ThinkPHP中的配置項目:
C(name,value); 設定配置項name的值,值是value
C (name); 讀取組態項目name的值
C(); 讀取全部的組態項目
設定項:
在應用程式層級的設定檔中定義配置項目LOAD_EXT_FILE,引入檔案info.php。
'load_ext_file' => 'info', //包含文件名的字符串,多个文件名通过使用英文半角逗号分割
在應用程式庫檔案目錄中定義一個info.php
<?php function getInfo(){ phpinfo(); }
測試:
public function test(){ getInfo(); }
展示結果:
上述需要注意的是,同樣檔案在系統封裝的方法中已經進行了引入,所以在使用具體的函數的時候不需要再對檔案進行單獨的引入,只需要像使用函數庫檔案的形式直接編寫需要使用的函數名稱即傳遞對應的參數。
透過load方法載入
語法:
load(‘@/不带后缀的php文件名’);
需要注意的是,檔案必須存在於分組層級的函式庫目錄中,且只能用於定義的分組中。
案例:透過自己在分組目錄中建立檔案hello.php,然後在其中定義一個函數,然後再去使用load方法載入並且使用其中的函數。
<?php function sayhello($who){ echo 'hello ' . $who; }
在控制器中使用load方法載入hello.php檔案:
public function test(){ //load load('@/hello'); //调用函数 sayhello(world); }
展示效果:
說明:上述三個檔案的載入方式在實際開發的時候都可以使用,但是一般以第一種為主(透過函式庫形式自動載入)。
推薦教學:thinkphp教學
#以上是ThinkPHP中幾種檔案載入方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!