php 类文件加载 Autoloader
2024-10-20 00:23:11
做习惯了编译语言,转到php 使用 php的面向对象开发时候遇见一个挺别扭的问题。在Php中引入对象 后 在调用过程中还需要将对象所在的php文件
require 到当前php文件 目前代码结构
index.php
<?php use model\BookModel; include_once __DIR__.'/autoloader.php';
Autoloader::register(); $book=new BookModel();
$book->id=10;
$book->name="wangk";
echo $book->toString(); ?>
autoloader.php
<?php /**
*
* 自动载入函数
*/
class Autoloader
{
/**
* 向PHP注册在自动载入函数
*/
public static function register()
{
spl_autoload_register(array(new self, 'autoload'));
} /**
* 根据类名载入所在文件
*/
public static function autoload($className)
{ // DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’ windows上是’\’
$filePath = __DIR__ . DIRECTORY_SEPARATOR . $className;
$filePath = str_replace('\\', DIRECTORY_SEPARATOR, $filePath) . '.php';
if (file_exists($filePath)) {
require_once $filePath;
return;
// if(method_exists($className, "init")) {
// call_user_func(array($className, "init"), $params);
// }
} else {
echo "无法加载" . $filePath;
} }
}
bookmodel.php
<?php
/**
* Created by PhpStorm.
* User: wangk
* Date: 2015/7/16
* Time: 10:14
*/ namespace model; class BookModel { public $name;
public $id;
public $age; public function toString(){ return 'name:'.$this->name.','.$this->id.",".$this->age;
} }
最新文章
- EasyPR--开发详解(2)车牌定位
- 必须掌握的八个cmd 命令
- asp.net fileupload上传大文件时提示404.13错误
- Trianglify - 生成五彩缤纷的 SVG 背景图案
- 玉渊潭赏樱花有感:从无到有写一个jQuery开源插件
- Docker探索系列1之docker入门安装与操作
- [转]redis 五种数据类型的使用场景
- HDU 5794 A Simple Chess (容斥+DP+Lucas)
- 使用SharePoint 2010的母版页
- JAR WAR EAR包的区别
- Keil C51必须注意的一些有趣特性
- Windows 下 Ionic 开发环境搭建
- 小白月赛13 小A的柱状图 (单调栈)
- MySQL:(二)
- Install Oracle Database client in silent mode
- JSON Support in PostgreSQL and Entity Framework
- PHP02
- 《Head First 设计模式》例子的C++实现(1 策略模式)
- ML(1)——机器学习简述
- .Net(c#)加密解密工具类: