手机
当前位置:查字典教程网 >编程开发 >php教程 >php自动加载autoload机制示例分享
php自动加载autoload机制示例分享
摘要:1,自定义函数2,spl_autoload_register()复制代码代码如下:liuyuan@ebuinfo:/var/www/phpg...

1,自定义函数

2,spl_autoload_register()

复制代码 代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ ll ./*

-rw-rw-r-- 1 liuyuan liuyuan 800 Feb 19 11:39 ./func_autoload.php

-rw-rw-r-- 1 liuyuan liuyuan 906 Feb 19 11:28 ./spl_autoload.php

./include:

total 16

drwxrwxr-x 2 liuyuan liuyuan 4096 Feb 19 11:42 ./

drwxrwxr-x 3 liuyuan liuyuan 4096 Feb 19 11:43 ../

-rw-rw-r-- 1 liuyuan liuyuan 142 Feb 19 11:42 aClass.php

-rw-rw-r-- 1 liuyuan liuyuan 143 Feb 19 11:42 bClass.php

首先看自定义函数方式:

复制代码 代码如下:

<?php

define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '</ br>');

print_r(get_included_files());

echo EOL;

print get_include_path();

echo EOL;

//set_include_path(get_include_path().PATH_SEPARATOR.'/var/www/ly_php/php_spl/include/');

//set_include_path(dirname(__FILE__).'/include');

//set_include_path(dirname(__FILE__).'/include/');

function __autoload($className){

$filename = './include/'.$className.'.php';

//$filename = './include/'.$className.'.php';

//$filename = '/var/www/ly_php/php_spl/include/'.$className.'.php';

if(file_exists($filename)){

include_once $filename;

}else{

exit('no file');

}

}

$a = new aClass();

$b = new bClass();

print_r(get_included_files());

?>

运行结果如下:

复制代码 代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php func_autoload.php

Array

(

[0] => /var/www/phpgcs/php_autoload/func_autoload.php

)

.:/usr/share/php:/usr/share/pear

aClass is loaded

bClass is loaded

Array

(

[0] => /var/www/phpgcs/php_autoload/func_autoload.php

[1] => /var/www/phpgcs/php_autoload/include/aClass.php

[2] => /var/www/phpgcs/php_autoload/include/bClass.php

)

第二种方式:

复制代码 代码如下:

<?php

class myLoader{

public static function autoload($className){

$filename = './include/'.$className.'.php';

if(file_exists($filename)){

include_once $filename;

}else{

exit('no file');

}

}

}

define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br />');

spl_autoload_register(array('myLoader', 'autoload'));

/**

*__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法

* 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list

*/

//spl_autoload_register( '__autoload' );

error_reporting(E_ALL^E_NOTICE^E_WARNING^E_ERROR);

error_reporting(E_NOTICE | E_WARNING );

$a = new aClass();

print_r(get_included_files());

echo EOL;

$b = new bClass();

echo EOL;

?>

运行结果如下:

复制代码 代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php spl_autoload.php

aClass is loaded

Array

(

[0] => /var/www/phpgcs/php_autoload/spl_autoload.php

[1] => /var/www/phpgcs/php_autoload/include/aClass.php

)

bClass is loaded

【php自动加载autoload机制示例分享】相关文章:

xml+php动态载入与分页

php 类自动载入的方法

PHP使用flock实现文件加锁的方法

php通过curl模拟登陆DZ论坛

一个php作的文本留言本的例子(五)

我的论坛源代码(六)

php分页的功能模块分享

PHP - Html Transfer Code

php数组合并与拆分实例分析

php自定义hash函数实例

精品推荐
分类导航