溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ThinkPHP中文件的加載方式有哪些

發(fā)布時間:2021-01-16 10:24:12 來源:億速云 閱讀:166 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)ThinkPHP中文件的加載方式有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

ThinkPHP中系統(tǒng)提供了三個文件加載方式:

函數(shù)庫形式加載:

函數(shù)庫再ThinkPHP中包括三類:系統(tǒng)函數(shù)庫文件(functions.php)、應(yīng)用級別函數(shù)庫文件、分組級別函數(shù)文件。

這三類函數(shù)庫文件只有系統(tǒng)函數(shù)庫文件(functions.php)是系統(tǒng)默認存在的,而另外兩類函數(shù)庫形式需要自行創(chuàng)建。

同時要注意,只有系統(tǒng)函數(shù)庫文件名為functions.php,而另外兩類函數(shù)庫形式文件名叫做function.php。

案例:使用函數(shù)庫形式定義需要使用的函數(shù)。函數(shù)名:testfunction

<?php
 
function testfunction(){
	echo 'testfunction';
}
    public function test(){
        testfunction();
    }

展示結(jié)果:

ThinkPHP中文件的加載方式有哪些

定義好的函數(shù)庫文件中的函數(shù),在使用的時候遵循php內(nèi)置函數(shù)語法的要求,直接寫上函數(shù)名(參數(shù))就可以了。

說明:

第一:不需要引入function.php,系統(tǒng)在執(zhí)行的時候自動幫我們引入了文件function.php文件;

第二:如果函數(shù)定義在應(yīng)用級別的函數(shù)庫文件中,則能在全部的分組(整個應(yīng)用)使用;如果函數(shù)定義在某個分組的函數(shù)庫文件中,則只能在當(dāng)前的分組中使用,否則會報函數(shù)未定義。

通過配置項動態(tài)加載:

在系統(tǒng)的執(zhí)行流程中有 一個文件會被執(zhí)行到App.class.php

    static public function init() {
        // 加載動態(tài)應(yīng)用公共文件和配置
        load_ext_file(COMMON_PATH);

在該方法中執(zhí)行了一個load_ext_file函數(shù)。

該方法并不是php內(nèi)置的方法,而是在系統(tǒng)函數(shù)庫文件中定義的:

ThinkPHP中文件的加載方式有哪些

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); 設(shè)置配置項name的值,值是value

C(name); 讀取配置項name的值

C(); 讀取全部的配置項

配置項:

在應(yīng)用級別的配置文件中定義配置項LOAD_EXT_FILE,引入文件info.php。

    'load_ext_file'         =>  'info',     
    //包含文件名的字符串,多個文件名通過使用英文半角逗號分割

在應(yīng)用函數(shù)庫文件目錄中定義一個info.php

<?php
 
function getInfo(){
	phpinfo();
}

ThinkPHP中文件的加載方式有哪些

測試:

    public function test(){
        getInfo();
    }

展示結(jié)果:

ThinkPHP中文件的加載方式有哪些

上述需要注意的是,同樣文件在系統(tǒng)封裝的方法中已經(jīng)進行了引入,所以在使用具體的函數(shù)的時候不需要再對文件進行單獨的引入,只需要像使用函數(shù)庫文件的形式直接編寫需要使用的函數(shù)名即傳遞相應(yīng)的參數(shù)即可。

通過load方法加載

語法:

load(‘@/不帶后綴的php文件名’);

需要注意的是,文件必須存在于分組級別的函數(shù)庫目錄中,并且只能用于定義的分組中。

案例:通過自己在分組目錄中創(chuàng)建文件hello.php,然后在其中定義一個函數(shù),然后再去使用load方法加載并且使用其中的函數(shù)。

<?php
 
function sayhello($who){
	echo 'hello ' . $who;
}

在控制器中使用load方法加載hello.php文件:

    public function test(){
        //load
        load('@/hello');
        //調(diào)用函數(shù)
        sayhello(world);
    }

展示效果:

ThinkPHP中文件的加載方式有哪些

說明:上述三個文件的加載方式在實際開發(fā)的時候都可以使用,但是一般以第一種為主(通過函數(shù)庫形式自動加載)。

關(guān)于“ThinkPHP中文件的加載方式有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI