Home >PHP Framework >ThinkPHP >Let's talk about the past and present life of spl_autoload_register

Let's talk about the past and present life of spl_autoload_register

咔咔
咔咔Original
2020-09-01 00:10:071626browse

This article will take you through the story of spl_autoload_register.

Preface

##❝Kaka compiled a road map and set out to create an interview guide, preparing to follow this road map I am writing an article, and I am adding some knowledge points that have not been added later. I also hope that all my partners will help to add them. See you in the comment area!

Lets talk about the past and present life of spl_autoload_register
Insert picture description here

1. spl_autoload_register past and present life

Before I just came into contact with PHP and didn’t use a framework, I believe most of my friends have used include and require, and of course include_once and require_once.

Do you still remember the difference between these two?

Include will only give a warning when an error is reported, while require will directly stop the script.

The concept of namespace was introduced in PHP5.3. For this reason, a contributor said this in the PHP documentation 11 years ago, I made this benchmark to ensure that I don't recommend something that could be called "nice, but slow" later.

Translates to "I did this test to ensure that I will not recommend something that can be called good, but very slow" in the future.

The test is to define 10 folders, each folder has 10 subfolders and each subfolder has 10 classes, and then use autoload and spl_autoload to compare, and the average execution The time is 50ms longer.

Then this thing refers to _autoload(). This method will eventually be abandoned in PHP7.2.

In addition to efficiency issues, there is another reason why the _autoload method was finally abandoned.

spl_autoload_register You can write multiple ones according to your own needs. The loading order is in queue mode, first in, first out.

autoload is a global function, so it can only be defined once. If defined multiple times, an error will be reported. If a project is implemented using multiple frameworks, this problem will arise.

2. Simple use of spl_autoload_register

This function has only three parameters, the first parameter is automatically loaded Function, the second parameter is whether to throw an exception when the automatically registered function fails, and the third parameter is to add the function to the head of the queue, not the tail of the queue.

The above are all defined based on true.

Define two files say and user

The say file declares a class Say and sets a method hello

Lets talk about the past and present life of spl_autoload_register
Insert image description here

When we come to the user file, we need to define an autoload method first, and then use spl_autoload_register to register

Lets talk about the past and present life of spl_autoload_registerPrinted data resultsLets talk about the past and present life of spl_autoload_register

Persistence in learning, persistence in blogging, and persistence in sharing are what Kaka has always upheld since his career Faith. I hope that Kaka’s articles on the huge Internet can bring you a little bit of help.

The above is the detailed content of Let's talk about the past and present life of spl_autoload_register. 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