This is also one of the basic ideas of OO design. Before PHP5, if you need to use a class, you only need to include it directly using include/require. Here is a practical example:
Copy code The code is as follows:
class ClassA{
public function __construct() {
echo “ClassA load success!”;
}
}
//Define a class ClassA, the file name is ClassA.php
class ClassA{
public function __construct() {
echo “ClassA load success!”;
}
}
class ClassB extends ClassA {
public function __construct(){
//parent::__construct();
echo “ClassB load success!”;
}
}
//Define a class ClassB, the file name is ClassB.php, ClassB inherits ClassA
class ClassB extends ClassA {
public function __construct(){
//parent::__construct();
echo “ClassB load success!”;
}
}
After defining two classes for testing, we come Write a PHP running program file containing the __autoload() method as follows:
function __autoload($classname){
$classpath=”./”.$classname.'.php';
if(file_exists ($classpath)){
require_once($classpath);
}
else{
echo 'class file'.$classpath.'not found!';
}
}
$newobj = new ClassA();
$newobj = new ClassB();
There is no problem at all in running this file, which shows how powerful autoload is It’s easy to use, haha...
But I have to remind you that there are several aspects that you must pay attention to.
1. If the class has an inheritance relationship (for example: ClassB extends ClassA), and ClassA is not in the directory where ClassB is located
When you use the __autoload magic function to instantiate ClassB, you will receive a fatal error:
Fatal error: Class 'Classd' not found in ……ClassB.php on line 2,
Solution: Put all classes with extends relationship in the same file directory, or manually add them in the file when instantiating an inherited class Contains inherited classes;
2. Another thing to note is that the class name and the class file name must be consistent to make it easier to use the magic function __autoload;
Other things to note:
3 . This method is invalid when running PHP scripts in CLI mode;
4. If your class name is related to user input - or depends on user input, be sure to check the input file name, for example: .. File names like /./ are very dangerous.
http://www.bkjia.com/PHPjc/325044.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/325044.htmlTechArticleThis is also one of the basic ideas of OO design. Before PHP5, if you need to use a class, you only need to include it directly using include/require. Here's a practical example: ...