您当前的位置: 首页 > 网站编程 > PHP教程 > php自动加载autoload机制示例分享

php自动加载autoload机制示例分享

作者:不详 来源:网络 发布时间: 2014-08-09 21:29 点击:
这篇文章主要介绍了php自动加载autoload机制示例,文件结构如下,2种方式实现自动加载,需要的朋友可以参考下 1,自定义函数 2,spl_autoload_register() 代码如下: liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ ll ./* -rw-rw-r-- 1 liuyuan liuyuan 800 Feb 19 11:

php自动加载autoload机制示例分享

  这篇文章主要介绍了php自动加载autoload机制示例,文件结构如下,2种方式实现自动加载,需要的朋友可以参考下

  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机制示例分享"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4