后端开发|php教程
nbsp,model,name,cache,class
后端开发-php教程
这段代码看不懂,谁能解释一下哈 100分
bs 人事系统源码,复制一行快捷键vscode,ubuntu出现挂载,怎么把网页放入tomcat,爬虫图片准备,php获取来访域名,如何做好seo外推蜘蛛池lzw
本帖最后由 php_csdn1 于 -11-13 11:00:58 编辑
密码管理器 网站源码,ubuntu启动网络失败,腾讯公众号爬虫,php怎么判断是否有一个字,企商seolzw
/**
* 模型实例化入口
*
* @param string $model_name 模型名称
* @return obj 对象形式的返回结果
*/
function Model($model = null){
static $_cache = array();
if (!is_null($model) && isset($_cache[$model])) return $_cache[$model];
$file_name = BASE_DATA_PATH./model/.$model..model.php;
$class_name = $model.Model;
if (!file_exists($file_name)){
return $_cache[$model] = new Model($model);
}else{
require_once($file_name);
if (!class_exists($class_name)){
$error = Model Error: Class .$class_name. is not exists!;
throw_exception($error);
}else{
return $_cache[$model] = new $class_name();
}
}
}
——解决思路———————-
汽修厂软件源码,ubuntu 撤销命令操作,详解Tomcat配置及使用,怎么捡爬虫,小儿PHP截骨课件,heinous seolzw
/**
* 模型实例化入口
*
* @param string $model_name 模型名称
* @return obj 对象形式的返回结果
*/
function Model($model = null){
//存储已经实例化的model的数组 model名字为key 实例化为value
static $_cache = array();
//如果在cache存储中存在 则直接返回对应的存储实例
if (!is_null($model) && isset($_cache[$model])) return $_cache[$model];
//model存储的文件路径 model需要按照 xxxxx.model.php
$file_name = BASE_DATA_PATH./model/.$model..model.php;
//model的类型需要是 xxxxModel
$class_name = $model.Model;
if (!file_exists($file_name)){
//如果文件不存在(类不存在) 实例化一个Model的对象
return $_cache[$model] = new Model($model);
}else{
//如果文件存在(类存在) 则包含进来
require_once($file_name);
//判断类是否存在 不存在抛出异常
if (!class_exists($class_name)){
$error = Model Error: Class .$class_name. is not exists!;
throw_exception($error);
}else{
//存在则实例化 放在cache里边 并返回
return $_cache[$model] = new $class_name();
}
}
}
其实就是Model的实例化和一个对象缓存 现在一般用autoload来实现
——解决思路———————-
这段代码就一个作用:返回$model的实例类
返回途径有三个:
1、如果静态变量中已经实例过了,就直接返回;
2、如果model目录中存在类文件,则实例化其中的类
3、如果文件不存在,则直接返回一个此类的实例