__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'));
?>
原文地址:https://www.cnblogs.com/phpfans/p/2159870.html