正文
php 魔术方法 __autoload()
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个类定义在同一个类文件中——相信这个文件一定会非常大。
但是__autoload()方法出来了,以后就不必为此大伤脑筋了,这个类会在你实例化对象之前自动加载制定的文件。
下边我们通过一个例子来看一下,具体的使用方法,并在稍后说明使
ClassA.php 文件
<?php/**
* Description of ClassA
*
* @author timeless
*/
class ClassA {
//put your code here
public function __construct() {
echo 'ClassA load success<br/>';
}
}
ClassB.php 文件
<?php/**
* Description of ClassB
*
* @author timeless
*/
class ClassB {
//put your code here
public function __construct() {
echo 'ClassB load success<br/>';
}
}
index.php<?php/**
* @author 赵兴壮<834916321@qq.com>
* @package phpClass
* @param string $classname 类名
* php 魔术方法 __autoload();
*/
function __autoload($classname) {
$classpath = '.'. DIRECTORY_SEPARATOR . $classname . '.php';
if (file_exists($classpath)) {
require_once $classpath;
} else {
echo 'class file'.$classpath.'not found';
}
}$newClassA=new ClassA();$newClassB=new ClassB();
结果:
ClassA load success
ClassB load success