加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php类注册及自动加载

发布时间:2022-07-09 09:11:30 所属栏目:PHP教程 来源:互联网
导读:工程目录如下: 1、将需要注册的类放在一个数组中 ?phpfinal class Utils { private function __construct() { } public static function getClasses($pre_path = /) { $classes = array( DBConfig = $pre_path.DBConfig/DBConfig.php, User = $pre_path.M
  工程目录如下:
 
  1、将需要注册的类放在一个数组中
 
  <?phpfinal class Utils {     private function __construct() {     }     public static function getClasses($pre_path = '/') {        $classes = array(                'DBConfig' => $pre_path.'DBConfig/DBConfig.php',                'User' => $pre_path.'Model/User.php',                'Dao' => $pre_path.'Dao/Dao.php',                'UserDao' => $pre_path.'Dao/UserDao.php',                'UserMapper' => $pre_path.'Mapping/UserMapper.php',        );        return $classes;    }}?>
 
  2、注册数组
 
  注意:步骤1中的类的路径都是相对于init.php而言的,不是相对于Utils而言的,这是因为我们通过init.php里的自动加载函数spl_autoload_register来require类的
 
  <?phprequire_once '/Utils/Utils.php';final class Init {         /**     * System config.     */    public function init() {        // error reporting - all errors for development (ensure you have        // display_errors = On in your php.ini file)        error_reporting ( E_ALL | E_STRICT );        mb_internal_encoding ( 'UTF-8' );        //registe classes        spl_autoload_register ( array ($this,'loadClass' ) );    }         /**     * Class loader.     */    public function loadClass($name) {        $classes = Utils::getClasses ();        if (! array_key_exists ( $name, $classes )) {            die ( 'Class "' . $name . '" not found.' );        }        require_once $classes [$name];    }}$init = new Init ();$init->init ();?>
 
  3、本例中在使用处test.php里require init.php
 
  <?phprequire_once 'Init.php'; $dao = new UserDao();$result = $dao->findByName('zcl');?>
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读