php的自动加载类
来源:互联网 发布:java培训出来找工作 编辑:程序博客网 时间:2024/04/30 09:31
许多开发者在写面向对象应用的时候,为每一个类的定义写一个源文件,最大的烦恼之一就是在每个脚本的开头必须写一个长长的include列表。
在php5中,这就显得没有必要了。一旦你将要使用一个还没有实例化(定义)的类或接口,你就可以用__autoload函数来实现,__autoload函数是自动调用的。在脚本中通过
使用这个函数,脚本就会自动加载所需要的类。
举例说明:
autoload.php如下:
<?php
function __autoload($class_name) {
include $class_name . '.php';
}
$obj = new MyClass1();//这里打印出calss1
$obj2 = new MyClass2(); //这里打印出class2
echo $myclass1::$a; //这里打印出aaa
echo $myclass2::$b;//这里打印出bbb
?>
myclass1.php如下:
<?php
class MyClass1{
public static $a='aaa';
function __construct(){
echo 'class1';
}
}
?>
myclass2.php如下
<?php
class MyClass2{
public static $b="bbb";
function __construct(){
echo 'class2';
}
}
?>
上面所有PHP文件都是在同一目录下,如果需要加载的类在不同的目录下,举例说明:
autoload.php如下:
<?php
function __autoload($class_name) {
autoload($class_name);
}
function autoload($class_name){
$arr=array(
'myclass1'=>'myclass1.php',
'myclass2'=>'myclass2.php',
'myclass3'=>'yimei/myclass3.php');
include $arr[$class_name];
}
//$obj = new MyClass1();
//$obj2 = new MyClass2();
echo myclass1::$a.'<br>';
echo myclass2::$b.'<br>';
echo myclass3::$c.'<br>';
?>
myclass3.php如下:
<?php
class myclass3{
public static $c='1111';
function __construct(){
}
}
?>
在php5中,这就显得没有必要了。一旦你将要使用一个还没有实例化(定义)的类或接口,你就可以用__autoload函数来实现,__autoload函数是自动调用的。在脚本中通过
使用这个函数,脚本就会自动加载所需要的类。
举例说明:
autoload.php如下:
<?php
function __autoload($class_name) {
include $class_name . '.php';
}
$obj = new MyClass1();//这里打印出calss1
$obj2 = new MyClass2(); //这里打印出class2
echo $myclass1::$a; //这里打印出aaa
echo $myclass2::$b;//这里打印出bbb
?>
myclass1.php如下:
<?php
class MyClass1{
public static $a='aaa';
function __construct(){
echo 'class1';
}
}
?>
myclass2.php如下
<?php
class MyClass2{
public static $b="bbb";
function __construct(){
echo 'class2';
}
}
?>
上面所有PHP文件都是在同一目录下,如果需要加载的类在不同的目录下,举例说明:
autoload.php如下:
<?php
function __autoload($class_name) {
autoload($class_name);
}
function autoload($class_name){
$arr=array(
'myclass1'=>'myclass1.php',
'myclass2'=>'myclass2.php',
'myclass3'=>'yimei/myclass3.php');
include $arr[$class_name];
}
//$obj = new MyClass1();
//$obj2 = new MyClass2();
echo myclass1::$a.'<br>';
echo myclass2::$b.'<br>';
echo myclass3::$c.'<br>';
?>
myclass3.php如下:
<?php
class myclass3{
public static $c='1111';
function __construct(){
}
}
?>
- PHP类的自动加载
- php的自动加载类
- php类的自动加载
- PHP类的自动加载
- PHP类的自动加载
- PHP的自动加载
- php 自动加载类
- PHP自动加载类
- PHP 自动加载类
- PHP 自动加载类
- PHP 类自动加载
- PHP自动加载类
- php自动加载类
- PHP:自动加载类
- PHP类的自动加载__autoload && spl_autoload_register
- PHP的类自动加载机制
- PHP的类自动加载机制
- PHP的类自动加载机制
- Nginx
- Myeclipse调优
- HTTP cookies 详解
- solaris 10 进行 nginx的安装
- seo优化注重网站的优化定向很重要
- php的自动加载类
- Apache Common StringUtils工具类
- modlesim 破解
- Android APP中清除缓存功能详解
- 博客营销怎样开展
- 西安铁路局高效云计算平台建设
- apache模块开发之helloworld
- POJ1947 Rebuilding Roads
- 程序员技术练级攻略