Rumah pembangunan bahagian belakang tutorial php php自动加载autoload机制示例分享_PHP

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

Jun 01, 2016 am 11:56 AM
autoload 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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Mekanisme pemuatan automatik dalam PHP Mekanisme pemuatan automatik dalam PHP Jun 18, 2023 pm 01:11 PM

Apabila bahasa PHP menjadi semakin popular, pembangun perlu menggunakan lebih banyak kelas dan fungsi. Apabila projek berkembang dalam saiz, memperkenalkan semua kebergantungan secara manual menjadi tidak praktikal. Pada masa ini, mekanisme pemuatan automatik diperlukan untuk memudahkan proses pembangunan dan penyelenggaraan kod. Mekanisme pemuatan automatik ialah ciri bahasa PHP yang boleh memuatkan kelas dan antara muka yang diperlukan secara automatik pada masa jalan dan mengurangkan pengenalan fail kelas manual. Dengan cara ini, pengaturcara boleh menumpukan pada membangunkan kod dan mengurangkan ralat dan pembaziran masa yang disebabkan oleh pengenalan kelas manual yang membosankan. Dalam PHP, secara amnya

Bagaimana untuk menggunakan JavaScript untuk menskalakan kandungan yang dimuatkan secara automatik apabila menatal ke bahagian bawah halaman sambil mengekalkan kesan nisbah aspek? Bagaimana untuk menggunakan JavaScript untuk menskalakan kandungan yang dimuatkan secara automatik apabila menatal ke bahagian bawah halaman sambil mengekalkan kesan nisbah aspek? Oct 27, 2023 pm 12:36 PM

Bagaimanakah JavaScript boleh mencapai penskalaan automatik kandungan apabila menatal ke bahagian bawah halaman dan mengekalkan kesan nisbah aspek? Dalam reka bentuk web moden, menatal ke bahagian bawah halaman untuk memuatkan lebih banyak kandungan secara automatik telah menjadi keperluan ciri biasa. Apabila kandungan yang dimuatkan mengandungi imej, kami selalunya mahu imej ini mengekalkan nisbah aspek asalnya. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk melaksanakan fungsi ini dan menyediakan contoh kod yang sepadan untuk rujukan. Pertama, kita perlu mendapatkan kedudukan tatal halaman. dalamJavaScr

Cara menggunakan Komposer untuk autoloading dalam PHP Cara menggunakan Komposer untuk autoloading dalam PHP Jun 23, 2023 am 10:27 AM

Komposer ialah alat pengurusan pergantungan yang sangat popular dalam PHP. Ia boleh membantu kami mengurus perpustakaan dan komponen pihak ketiga yang diperlukan dalam projek dan memuatkan perpustakaan dan komponen ini secara automatik. Artikel ini akan memperkenalkan cara menggunakan Komposer untuk memuatkan automatik dalam PHP. Pasang Komposer Mula-mula, anda perlu memasang Komposer. Anda boleh memuat turun versi terkini Komposer di https://getcomposer.org/download/ dan memasangnya. InitializeComp

Kelas Induk Pemuatan Auto PHP: Menjadi Pakar Pemuatan Kod Kelas Induk Pemuatan Auto PHP: Menjadi Pakar Pemuatan Kod Mar 02, 2024 pm 09:43 PM

Pengenalan kepada PHP Autoloading PHP autoloading ialah mekanisme yang membolehkan PHP memuatkan kelas secara automatik apabila diperlukan tanpa memasukkan fail secara manual. Ini sangat memudahkan pembangunan aplikasi besar dan meningkatkan kebolehselenggaraan kod. Ruang Nama dan Ruang Nama Muat Auto dalam PHP digunakan untuk menyusun kod. Apabila kelas yang diisytiharkan menggunakan ruang nama perlu dimuatkan, PHP akan melaksanakan proses pemuatan automatik. Autoloader bertanggungjawab untuk mencari dan memuatkan fail kelas yang sepadan berdasarkan ruang nama dan nama kelas. Pemuatan automatik menggunakan Composer Composer ialah alat standard dalam komuniti PHP untuk pengurusan pergantungan dan pemuatan automatik. Selepas memasang Komposer, anda boleh mengkonfigurasi autoloading menggunakan langkah berikut: //composer.JSO

Bagaimana untuk menggunakan JavaScript untuk mencapai kesan pudar dalam memuatkan kandungan secara automatik selepas menatal ke bahagian bawah halaman? Bagaimana untuk menggunakan JavaScript untuk mencapai kesan pudar dalam memuatkan kandungan secara automatik selepas menatal ke bahagian bawah halaman? Oct 16, 2023 am 09:09 AM

Bagaimanakah JavaScript mencapai kesan pudar dalam memuatkan kandungan secara automatik selepas menatal ke bahagian bawah halaman? Dalam reka bentuk web moden, adalah keperluan biasa untuk menatal ke bahagian bawah halaman untuk memuatkan kandungan secara automatik dengan kesan pudar. Artikel ini akan menggunakan JavaScript sebagai contoh untuk memperkenalkan cara mencapai kesan ini. Pertama, kita perlu menggunakan JavaScript untuk mendengar acara tatal halaman. Apabila menatal ke bahagian bawah halaman, kami akan mencetuskan fungsi yang memuatkan kandungan baharu. //Dengar tetingkap acara tatal halaman.addEv

Bagaimana untuk menggunakan ruang nama PHP7 dan mekanisme pemuatan automatik untuk mengatur struktur kod? Bagaimana untuk menggunakan ruang nama PHP7 dan mekanisme pemuatan automatik untuk mengatur struktur kod? Oct 20, 2023 am 08:57 AM

Bagaimana untuk menggunakan ruang nama PHP7 dan mekanisme pemuatan automatik untuk mengatur struktur kod? Abstrak: Dengan pelancaran PHP7, ruang nama dan mekanisme pemuatan automatik telah menjadi ciri penting yang tidak boleh diabaikan dalam pembangunan PHP. Artikel ini akan memperkenalkan cara menggunakan ruang nama PHP7 dan mekanisme pemuatan automatik untuk mengatur struktur kod, dan menggambarkannya melalui contoh kod tertentu. 1. Apakah ruang nama? Ruang nama ialah mekanisme yang diperkenalkan dalam PHP7 untuk menyelesaikan konflik penamaan yang mungkin berlaku antara perpustakaan kelas atau fail kod yang berbeza. melalui ruang nama

Bagaimana untuk menggunakan JavaScript untuk mencapai kesan paparan kecerunan untuk memuatkan kandungan secara automatik selepas menatal ke bahagian bawah halaman? Bagaimana untuk menggunakan JavaScript untuk mencapai kesan paparan kecerunan untuk memuatkan kandungan secara automatik selepas menatal ke bahagian bawah halaman? Oct 16, 2023 am 08:54 AM

Bagaimanakah JavaScript mencapai kesan paparan kecerunan untuk memuatkan kandungan secara automatik apabila menatal ke bahagian bawah halaman? Dalam reka bentuk web moden, menatal ke bahagian bawah halaman untuk memuatkan kandungan secara automatik adalah keperluan biasa. Untuk meningkatkan pengalaman pengguna, kesan paparan kecerunan juga merupakan pilihan reka bentuk biasa. Jadi, bagaimana kita melaksanakannya dalam JavaScript? Langkah pelaksanaan khusus dan contoh kod diberikan di bawah. Idea utama untuk mencapai kesan ini adalah untuk memantau acara tatal halaman dan menentukan sama ada bahagian bawah halaman telah dicapai berdasarkan kedudukan tatal.

Daya tarikan PHP pemuatan automatik mata pengetahuan: meneroka khazanah pengaturcaraan tersembunyi Daya tarikan PHP pemuatan automatik mata pengetahuan: meneroka khazanah pengaturcaraan tersembunyi Feb 19, 2024 pm 07:04 PM

Pemuatan automatik PHP ialah kaedah yang membolehkan PHP mencari dan mengimport kelas atau fail yang diperlukan secara automatik Ia melaksanakan mekanisme pemuatan automatik dengan menggunakan kaedah ajaib __autoload() atau fungsi spl_autoload_reGISter(), yang memudahkan pemuatan perpustakaan dan kelas cekap. Prinsip pemuatan automatik Pemuatan automatik PHP adalah berdasarkan prinsip berikut: PHP akan cuba memuatkan fail kelas atau fail fungsi yang sepadan berdasarkan nama kelas atau nama fungsi yang diberikan pada masa jalan. Jika pemuatan gagal, PHP akan cuba menggunakan fungsi atau kaedah autoload untuk mencari dan memuatkan fail kelas atau fail fungsi yang sepadan. Setelah fail kelas atau fail fungsi dimuatkan, PHP akan terus melaksanakan kod sebelum pemuatan gagal. Penggunaan pemuatan automatik Penggunaan pemuatan automatik

See all articles