本文实例讲述了php框架CI(codeigniter)自动加载与自主创建对象操作。分享给大家供大家参考,具体如下:

CI的autoload很好用,自动创建对象,但是注意,他的对象只有一个。

我们很多情况下需要生成对象,这就很麻烦。

好在我们可以有一些方法来创建。

下面记录一下使用library自定义类时,怎么使用自动加载或者用load的方法,以及自主生成任意多个实例的方法。

1、定义符合library要求的自定义类。

要定义自定义类,最好放到library,而要放到library必须将类改造成他规定的模式,大概如下:

2、引入

不管是什么开发语音,在使用之前都要引入。

autoload以及load的本质是什么:可能就是做了在全局(controller的基类)include+new一个实例的工作。

如果我们需要自己new实例,我们使用它的load机制也没有影响,相当于我们使用了他的include,但是他生成的实例我们没有去使用。

那么引入的方法呢?

第一种,在autoload文件里面的

数组添加此类,注意只要类名,区分大小写,不需要后缀php。

第二种,使用load的方法

以上2种方法,他自动会生成一个小写的testnewinstance供你调用。

以上2种方法,所获得的实例都是单例。

第三种,可以用require(require_once)或者include(include_once)来加载。

(require失败会报错,include失败不报错继续运行)

但是你通过这种方法引入进来的,并没有自动生成一个实例供你调用,你需要自己去生成。

代码如:

3、获得实例

如果是通过autoload或者load进来的类,已经自动生成一个小写的此类的实例变量供调用,只要用$this->xxx即可调用,在此不再赘述。

这里重点说下自主生成实例的方法。

方法一:直接在类里面添加一个静态函数,返回一个new对象,例如:

使用时直接通过调用此静态函数获得:

方法二:直接调用使用new生成对象(此方法就不需要那个静态函数了):

注意,不管生成实例的方法一或者方法二,引入的时候上面的几种引入法都是通用的。

之前的文章提到使用cli调用法,这种静态函数返回实例的方法行不通,我想可能还是引入的时候出问题,以后碰到了再研究。

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/wzj0808/article/details/82891235

php ci框架 实例化类,php框架CI(codeigniter)自动加载与自主创建对象操作实例分析...相关推荐

  1. PHP自动加载类和方法,在PHP中自动加载类的最佳方法

    请,如果您需要自动加载类 – 使用命名空间和类名称约定与SPL自动加载,它将节省您的重构时间. 当然,您将需要将每个类作为对象进行实例化. 谢谢. 或者像这样(我在我的一个项目中): spl_auto ...

  2. PHP框架自动加载类文件原理

    描述:公司项目PHP用作中间转发层(接收http请求,用 socket跟c++做通信),由于代码没有用到框架,这些东西自然就是之前的人自己写的.最近需要对这个底层进行优化,于是便看了下这部分的代码. ...

  3. iOS系统整体框架及类继承框架图

    iOS系统整体框架及类继承框架图 文章目录 iOS系统整体框架及类继承框架图 前言 一.系统架构 二.Cocoa框架 三.Cocoa框架的类继承体系 1.Foundation框架类继承体系 2.UIK ...

  4. thinkphp 框架自动加载原理_ThinkPHP5分析Part 1 基本框架流程

    ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能 ...

  5. tp5 日期范围查询_tp5(thinkPHP5框架)时间查询操作实例分析,tp5thinkphp5

    tp5(thinkPHP5框架)时间查询操作实例分析,tp5thinkphp5 本文实例讲述了tp5(thinkPHP5框架)时间查询操作.分享给大家供大家参考,具体如下: 在项目中 可能会遇到 跨月 ...

  6. thinkphp 框架自动加载原理_thinkPHP5.0框架自动加载机制分析

    本文实例讲述了thinkPHP5.0框架自动加载机制.分享给大家供大家参考,具体如下: 概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类 ...

  7. thinkphp 框架自动加载原理_这下你应该理解ThinkPHP的Loader自动加载了

    想了很久终于要开始系列文章的编写了,期望是写出提升和面试都可以搞定的系列文章. 当你看到本文时,如果你发现咔咔没有编写到的面试热点问题或者技术难点,期待评论区指出,一起完善. 前言 目前再整理PHP进 ...

  8. phpexcel的自动加载与其他框架有冲突

    2019独角兽企业重金招聘Python工程师标准>>> 一直想用phpEXCEL,这次这个项目遇到了.然而坑也出来了.phpexcel的Autoloader.php里面 public ...

  9. php 类自动执行,php类中的魔术方法及类的自动加载

    类的模式方法都是 public 的,以 两个下划线开头,在某些情况下自动被调用,有点类似 hook 或者 事件触发. 魔术方法的传参方式不能使用引用. __construct() : 构造函数,实例化 ...

最新文章

  1. windows守护进程脚本
  2. Kaggle知识点:对比学习基础
  3. [蓝桥杯]最大连续子序列和
  4. linux 开发板传文件,linux下使用minicom传送文件到开发板
  5. 通用的linux下安装配置svn独立服务
  6. Jsp简单入门与Jsp实用教程总结
  7. 2021三跨985重庆大学917计算机上岸经验分享
  8. 超好用的纸飞机串口调试助手,支持绘图和关键字高亮
  9. 与速度对偶的角速度系公式
  10. doc 问卷调查模板表_调查问卷模板.doc
  11. sqlrelay mysql_SQL Relay使用
  12. js 身份证 正则校验 大陆、香港、澳门、台湾 身份证 正则校验
  13. 数学史思维导图_8张思维导图揭示:数学应该如何学,才能逆袭为学霸?
  14. [Java高级](二)泛型
  15. html兼容模式下不显示图片,HTML 邮件兼容问题与解决方案
  16. MUR10060CT-ASEMI快恢复模块MUR10060CT
  17. 揭秘子宫里的动物:小袋鼠仅软糖大小
  18. lrc编辑器 - Super LRC Editor发布
  19. 一次jenkins触发器的实验
  20. 装nvida显卡驱动后循环登录 闪退的方法UBUNTU16.04

热门文章

  1. 如何利用扩展欧几里得算法求解不定方程_欧几里德算法、拓展欧几里德、中国剩余定理...
  2. Windows 10如何连接和使用局域网内的打印机(非网络打印机)亲测有效、绝对管用,不定时更新!!!(更新日期2021.09.14,如有不会的可以直接私我)
  3. 网页信息上传服务器,Unity 连接网页服务器 获取数据上传数据
  4. krpano 场景切换 通知_一个基于Vulkan的异步场景加载设计
  5. 捡到vivo手机怎么清除账号_为什么现在买手机,很少会去考虑OPPO和vivo呢?看一下老板怎么说...
  6. docker 安装nacos_康过来!Nacos配置和管理微服务的使用
  7. 安装squid_「首席推荐」设置Squid转发代理或者正向代理
  8. DVWA File Inclusion——Writeup
  9. html5折叠卡片,基于HTML5折叠卡片式下拉菜单代码
  10. 扫地机器人返充原理_扫地机器人全解析