首頁 後端開發 php教程 php自动加载autoload机制示例分享_php实例

php自动加载autoload机制示例分享_php实例

May 17, 2016 am 08:48 AM
autoload 自動載入

1,自定义函数

2,spl_autoload_register()

复制代码 代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ ll ./*
-rw-rw-r-- 1 liuyuan liuyuan  800 Feb 19 11:39 ./func_autoload.php
-rw-rw-r-- 1 liuyuan liuyuan  906 Feb 19 11:28 ./spl_autoload.php

./include:
total 16
drwxrwxr-x 2 liuyuan liuyuan 4096 Feb 19 11:42 ./
drwxrwxr-x 3 liuyuan liuyuan 4096 Feb 19 11:43 ../
-rw-rw-r-- 1 liuyuan liuyuan  142 Feb 19 11:42 aClass.php
-rw-rw-r-- 1 liuyuan liuyuan  143 Feb 19 11:42 bClass.php

首先看自定义函数方式:

复制代码 代码如下:

    define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : ' br>');
    print_r(get_included_files());
    echo EOL;
    print get_include_path();
    echo EOL;
    //set_include_path(get_include_path().PATH_SEPARATOR.'/var/www/ly_php/php_spl/include/');
    //set_include_path(dirname(__FILE__).'/include');
    //set_include_path(dirname(__FILE__).'/include/');

    function __autoload($className){
        $filename = './include/'.$className.'.php';
        //$filename = './include/'.$className.'.php';
        //$filename = '/var/www/ly_php/php_spl/include/'.$className.'.php';
        if(file_exists($filename)){
            include_once $filename;
        }else{
            exit('no file');
        }
    }

    $a = new aClass();
    $b = new bClass();
    print_r(get_included_files());
?>

运行结果如下:

复制代码 代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php func_autoload.php
Array
(
    [0] => /var/www/phpgcs/php_autoload/func_autoload.php
)

.:/usr/share/php:/usr/share/pear
aClass is loaded
bClass is loaded
Array
(
    [0] => /var/www/phpgcs/php_autoload/func_autoload.php
    [1] => /var/www/phpgcs/php_autoload/include/aClass.php
    [2] => /var/www/phpgcs/php_autoload/include/bClass.php
)

第二种方式:

复制代码 代码如下:

    class myLoader{
        public static function autoload($className){
            $filename = './include/'.$className.'.php';
            if(file_exists($filename)){
                include_once $filename;
            }else{
                exit('no file');
            }
        }
    }

    define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');

    spl_autoload_register(array('myLoader', 'autoload'));

    /**
    *__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法
    * 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list
    */
    //spl_autoload_register( '__autoload' );

 
    error_reporting(E_ALL^E_NOTICE^E_WARNING^E_ERROR);
    error_reporting(E_NOTICE | E_WARNING );

    $a = new aClass();
    print_r(get_included_files());
    echo EOL;
    $b = new bClass();
    echo EOL;
?>

运行结果如下:

复制代码 代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php spl_autoload.php
aClass is loaded
Array
(
    [0] => /var/www/phpgcs/php_autoload/spl_autoload.php
    [1] => /var/www/phpgcs/php_autoload/include/aClass.php
)

bClass is loaded
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP中的自動載入機制 PHP中的自動載入機制 Jun 18, 2023 pm 01:11 PM

隨著PHP語言越來越受歡迎,開發人員需要使用越來越多的類別和函數。當專案規模擴大時,手動引入所有依賴項將變得不切實際。這時候就需要一種自動載入機制來簡化程式碼開發和維護過程。自動載入機制是一種PHP語言的特性,可以在運行時自動載入所需的類別和接口,並減少手動的類別文件引入。這樣,程式設計師可以專注於開發程式碼,減少因繁瑣的手動類別引入而產生的錯誤和時間浪費。在PHP中,一般

JavaScript 如何實現滾動到頁面底部自動載入的內容縮放並保持縱橫比效果? JavaScript 如何實現滾動到頁面底部自動載入的內容縮放並保持縱橫比效果? Oct 27, 2023 pm 12:36 PM

JavaScript如何實現滾動到頁面底部自動載入的內容縮放並保持縱橫比效果?在現代網頁設計中,滾動到頁面底部自動加載更多內容已經成為了常見的功能需求。而當載入的內容包含圖片時,我們常常希望這些圖片能夠維持原有的縱橫比。本文將介紹如何使用JavaScript來實現這個功能,並提供對應的程式碼範例供參考。首先,我們需要取得頁面滾動的位置。在JavaScr

如何利用PHP7的命名空間和自動載入機制組織程式碼的結構? 如何利用PHP7的命名空間和自動載入機制組織程式碼的結構? Oct 20, 2023 am 08:57 AM

如何利用PHP7的命名空間和自動載入機制組織程式碼的結構?摘要:隨著PHP7的推出,命名空間與自動載入機製成為了PHP開發中不可忽視的重要特性。本文將介紹如何利用PHP7的命名空間和自動載入機制來組織程式碼的結構,並透過具體的程式碼範例進行說明。一、什麼是命名空間?命名空間是PHP7引入的一種機制,用於解決不同類別庫或程式碼檔案之間可能出現的命名衝突問題。透過命名空間

如何在PHP中使用Composer進行自動載入 如何在PHP中使用Composer進行自動載入 Jun 23, 2023 am 10:27 AM

Composer是PHP中一個非常流行的依賴管理工具,可以幫助我們管理專案中所需的第三方函式庫和元件,並自動載入這些函式庫和元件。本文將介紹如何在PHP中使用Composer進行自動載入。安裝Composer首先,你需要安裝Composer。你可以在https://getcomposer.org/download/下載Composer的最新版本並安裝。初始化Comp

自動載入和命名空間在 Composer 中如何運作? 自動載入和命名空間在 Composer 中如何運作? Jun 04, 2024 pm 09:03 PM

自動載入和命名空間在Composer中的運作方式:自動載入:Composer利用自動載入特性,在需要時自動載入類,省去了手動呼叫的繁瑣。命名空間:命名空間可組織程式碼,避免相同類別名稱衝突。 Composer透過PSR-4標準支援命名空間,指定命名空間和目錄之間的對應。實戰案例:使用第三方函式庫時,在composer.json中配置require和autoload部分,指定庫名稱和映射規則。這使我們可以直接使用庫中的類,無需手動加載文件。

JavaScript 如何實現滾動到頁面底部自動載入的內容淡入效果? JavaScript 如何實現滾動到頁面底部自動載入的內容淡入效果? Oct 16, 2023 am 09:09 AM

JavaScript如何實現滾動到頁面底部自動載入的內容淡入效果?在現代的網頁設計中,實現滾動到頁面底部自動加載內容並且帶有淡入效果是非常常見的需求。本文將以JavaScript為例,並介紹如何達成此效果。首先,我們需要利用JavaScript監聽頁面捲動事件。當捲動到頁面底部時,我們將觸發載入新內容的函數。 //監聽頁面捲動事件window.addEv

PHP 自動載入大師班:成為程式碼載入專家 PHP 自動載入大師班:成為程式碼載入專家 Mar 02, 2024 pm 09:43 PM

PHP自動載入介紹PHP自動載入是一種機制,允許php在需要時自動載入類別,而無需手動包含檔案。這極大地簡化了大型應用程式的開發,並提高了程式碼的可維護性。命名空間和自動載入PHP中的命名空間用於組織程式碼。當使用命名空間聲明的類別需要被載入時,PHP將執行自動載入流程。自動載入器負責根據命名空間和類別名稱尋找並載入相應的類別檔案。使用Composer實作自動載入Composer是PHP社群中用於依賴管理和自動載入的標準工具。安裝Composer後,您可以使用以下步驟設定自動載入://composer.JSO

JavaScript 如何實現滾動到頁面底部自動載入的內容漸層顯示效果? JavaScript 如何實現滾動到頁面底部自動載入的內容漸層顯示效果? Oct 16, 2023 am 08:54 AM

JavaScript如何實現滾動到頁面底部自動載入的內容漸層顯示效果?在現代的網頁設計中,捲動到頁面底部自動載入內容是一個常見的需求。而為了提升使用者體驗,漸層顯示效果也是常見的設計選項。那麼,在JavaScript中,我們要如何進行實作呢?以下將給出具體的實作步驟和程式碼範例。實現此效果的主要想法是監聽頁面的捲動事件,並根據捲動位置來判斷是否到達頁面底

See all articles