__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')); ?>