__autoload自动加载函数
function __autoload($name) {
echo $name.'\n';
if('test1' == $name) {
class test1 extends test implements iTemplate {
protected static $_instance = null;
public static function getInstance()
{
if (null === self::$_instance) {
self::$_instance = new self();
}
return self::$_instance;
}
public function parse_name($name,$type=0) {
if($type) {
return ucfirst(preg_replace("/_([a-zA-Z])/e", "strtoupper('\\1')", $name));
} else {
$name = preg_replace("/[A-Z]/", "_\\0", $name);
return strtolower(trim($name, "_"));
}
}
}
} elseif('test' == $name) {
class test {}
} elseif('iTemplate' == $name) {
interface iTemplate {}
}
}
$test1 = test1::getInstance();
echo ucfirst($test1->parse_name('user_type', 1));
输出
test1
test
iTemplate
自定义__autoload函数
函数
function my_autoload($c) {
echo $c;
class Bla {} // Usually "include 'path/to/file.php';"
}
spl_autoload_register('my_autoload');
$Bla = new Bla();类方法
<?php
* 你可以用静态方法
class MyClass {
public static function autoload($className) {
// ...
}
}
spl_autoload_register(array('MyClass', 'autoload'));
?>
* 也可以用实例
<?php
class MyClass {
public function autoload($className) {
// ...
}
}
$instance = new MyClass();
spl_autoload_register(array($instance, 'autoload'));
?>

浙公网安备 33010602011771号