Principle of automatic loading in PHP and tutorial on using __autoload
Auto-loading principle
The principle of automatic loading is that when we create a new class, if the PHP system cannot find your class , the __autoload($class_name) method in this file will be automatically called, and our new class_name will become the parameter of this method.
So in this method we can require the corresponding path class file based on the various judgments and divisions we need new class_name to achieve automatic loading.
__autoload usage tutorial:
Let’s go step by step and look at the automatic call of __autoload(). Let’s look at an example:
index.php
$db =new DB();
If we do not manually import the DB class, the program may report an error saying that this class cannot be found:
Fatal error: Class 'DB' not found in D:\wamp\www\testphp\autoload\index.php on line 3
So, let’s add the __autoload() method now and take a look:
$db =new DB(); function __autoload($className) { echo $className; exit(); }
According to the description of the automatic loading mechanism above, what will be output after your analysis? That's right: it must be the output: DB, which is the class name of the class we need new. Therefore, at this time we can load the class library file as needed in the __autoload() method.
index.php
$db =new DB(); function __autoload($className) { require $className .'.php'; }
DB.php
class DB { publicfunction __construct() { echo 'Hello DB'; } }
In this way we can easily add our All classes that need to be new are imported. In this way, we can easily new N classes, such as:
<?php function __autoload($className) { require $className .'.php'; } $db =new DB(); $info =newInfo(); $gender =newGender(); $name =newName(); //也是支持静态方法直接调用的 Height::test();
Recommended tutorial: PHP tutorial
The above is the detailed content of Principle of automatic loading in PHP and tutorial on using __autoload. For more information, please follow other related articles on the PHP Chinese website!

The article discusses various Java garbage collection algorithms (Serial, Parallel, CMS, G1, ZGC), their performance impacts, and suitability for applications with large heaps.

The article discusses the Java Virtual Machine (JVM), detailing its role in running Java programs across different platforms. It explains the JVM's internal processes, key components, memory management, garbage collection, and performance optimizatio

Java's Nashorn engine enables JavaScript scripting within Java apps. Key steps include setting up Nashorn, managing scripts, and optimizing performance. Main issues involve security, memory management, and future compatibility due to Nashorn's deprec

Java's try-with-resources simplifies resource management by automatically closing resources like file streams or database connections, improving code readability and maintainability.

Java enums represent fixed sets of values, offering type safety, readability, and additional functionality through custom methods and constructors. They enhance code organization and can be used in switch statements for efficient value handling.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Atom editor mac version download
The most popular open source editor

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Zend Studio 13.0.1
Powerful PHP integrated development environment

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 Chinese version
Chinese version, very easy to use