您好,欢迎访问一九零五行业门户网

php的spl

在php5中的标准库方法spl_autoload相当于实现自己的__autoload ? php function __autoload( $classname ){ if ( is_file ( $classname .'.php' ){ include $classname .'.php' ; } elseif ( is_file ( $classname .'.inc' ){ include $classname .'.inc' ; }
在php5中的标准库方法spl_autoload相当于实现自己的__autoload
php function __autoload($classname){ if(is_file($classname.'.php'){ include $classname.'.php'; } elseif(is_file($classname.'.inc'){ include $classname.'.inc'; } }
它会在注册目录下自动寻找与$classname同名的.php/.inc文件。当然,你也可以指定特定类型的文件,方法是注册扩展名
php spl_autoload_extensions('.php,.inc,.some');
这样,它也会搜索.some文件。默认,php是不会启动spl_autoload的,那么怎样才能自动让spl_autoload生效呢呢?方法是
php spl_autoload_register();
spl_autoload_register有一个$callback参数,如果不指定,它就会自动注册spl_autoload,为了能搜寻更多的自动加载目录,可以在这些代码前面设置自动加载目录
php set_include_path(get_include_path() . path_separator . 'some/path' . directory_separator);
这样,当php找不到指定的类时,就会在set_include_path指定的目录下寻找。
这些方法常用在php框架中。比如把上面的介绍串连起来:
当你要加载some/path下面的classa类时,它会在目录下寻找classa.php或classa.inc或classa.some,这样你就可以放心地运用new classa或extends classa
php classb extends classa { // code.. } $a = new classa; $b = new classb;
其它类似信息

推荐信息