Home >Backend Development >PHP Tutorial >Automatic loading of PHP classes

Automatic loading of PHP classes

不言
不言Original
2018-04-26 11:10:381681browse

The content of this article is about the automatic loading of PHP classes. It has a certain reference value. Now I share it with everyone. Friends in need can refer to it.

Write a HumanModel.php## first. #

class HumanModel {
    public function t() {
        echo &#39;人类<br >&#39;;
    }
}

// =Example= //

require(&#39;./HumanModel.php&#39;);$lisi = new HumanModel();$lisi->t(); // 人类

// =Automatic loading of classes= //

function __autoload($c) {
    echo &#39;~~~~~~~~~&#39;,$c,&#39;~~~~~~~~&#39;;
}$ming = new Dog();

// === Notes Part 1===

/*

Automatic loading of classes

If a non-existent class is called,

Before reporting an error, we can also use the __autoload function
Get an intervention opportunity

The system will call the __autoload() function

and automatically pass the "class name" to the __autoload function

We can load in __autoload Required classes

*/

function __autoload($c) {
    echo &#39;我先自动加载&#39;;    echo &#39;./&#39; . $c . &#39;.php&#39;;    echo &#39;<br >&#39;;    require(&#39;./&#39; . $c . &#39;.php&#39;);
}$lisi = new HumanModel();$lisi->t();// 我先自动加载./HumanModel.php// 人类function test() {
    // 函数内可以写任何合法的PHP代码,包含再声明一个函数/类
    class Bird {
        public static function sing() {
            echo &#39;百灵鸟放声歌唱!<br >&#39;;
        }
    }
}// 必须要调用函数然后才能执行内部test();
Bird::sing(); 


/*
Bird::sing(); 

未定义类
转到上面类的自动加载函数中,于是报错如下:
Warning: require(./Bird.php): failed to open stream: No such file or directory
找不到Bird这个php
*/

// ===Notes Part 2===

/*

Can automatic loading only use the __autoload function?
Answer: No, in fact, you can also specify a function.

For example, use the zidongjiazai() function

Note: We need to notify the system that we have written an automatic loading method

Use the system function spl_autoload_register to notify
*/

spl_autoload_register(&#39;zidongjiazai&#39;);function zidongjiazai($c) {
    require(&#39;./&#39; . $c . &#39;.php&#39;);
}$HumanModel = new HumanModel();$HumanModel->t();

// Tips: We can also register a static method of the class to use as the automatic loading function

First write a HumanModel.php

class HumanModel {
    public function t() {
        echo &#39;人类<br >&#39;;
    }
}

// =Example= //

require(&#39;./HumanModel.php&#39;);$lisi = new HumanModel();$lisi->t(); // 人类

// =Automatic loading of classes= //

function __autoload($c) {
    echo &#39;~~~~~~~~~&#39;,$c,&#39;~~~~~~~~&#39;;
}$ming = new Dog();

// ===Notes Part 1===

/*

Automatic loading of classes

If a non-existent class is called,

Before reporting an error, we can also use the __autoload function
Get an intervention opportunity

The system will call the __autoload() function

and automatically pass the "class name" to the __autoload function

We can load the needs in __autoload Class

*/

function __autoload($c) {
    echo &#39;我先自动加载&#39;;    echo &#39;./&#39; . $c . &#39;.php&#39;;    echo &#39;<br >&#39;;    require(&#39;./&#39; . $c . &#39;.php&#39;);
}$lisi = new HumanModel();$lisi->t();// 我先自动加载./HumanModel.php// 人类function test() {
    // 函数内可以写任何合法的PHP代码,包含再声明一个函数/类
    class Bird {
        public static function sing() {
            echo &#39;百灵鸟放声歌唱!<br >&#39;;
        }
    }
}// 必须要调用函数然后才能执行内部test();
Bird::sing(); 


/*
Bird::sing(); 

未定义类
转到上面类的自动加载函数中,于是报错如下:
Warning: require(./Bird.php): failed to open stream: No such file or directory
找不到Bird这个php
*/

// ===Notes Part 2===

/*

Can automatic loading only use the __autoload function?
Answer: No, in fact, you can also specify a function.

For example, use the zidongjiazai() function

Note: We need to notify the system that we have written an automatic loading method

Use the system function spl_autoload_register to notify
*/

spl_autoload_register(&#39;zidongjiazai&#39;);function zidongjiazai($c) {
    require(&#39;./&#39; . $c . &#39;.php&#39;);
}$HumanModel = new HumanModel();$HumanModel->t();

// Tips: We can also register a static method of the class to act as an automatic loading function

Related recommendations:

PHP’s abstract class

The above is the detailed content of Automatic loading of PHP classes. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP abstract classNext article:PHP abstract class