php ci框架 实例化类,php框架CI(codeigniter)自动加载与自主创建对象操作实例分析...
本文实例讲述了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)自动加载与自主创建对象操作实例分析...相关推荐
- PHP自动加载类和方法,在PHP中自动加载类的最佳方法
请,如果您需要自动加载类 – 使用命名空间和类名称约定与SPL自动加载,它将节省您的重构时间. 当然,您将需要将每个类作为对象进行实例化. 谢谢. 或者像这样(我在我的一个项目中): spl_auto ...
- PHP框架自动加载类文件原理
描述:公司项目PHP用作中间转发层(接收http请求,用 socket跟c++做通信),由于代码没有用到框架,这些东西自然就是之前的人自己写的.最近需要对这个底层进行优化,于是便看了下这部分的代码. ...
- iOS系统整体框架及类继承框架图
iOS系统整体框架及类继承框架图 文章目录 iOS系统整体框架及类继承框架图 前言 一.系统架构 二.Cocoa框架 三.Cocoa框架的类继承体系 1.Foundation框架类继承体系 2.UIK ...
- thinkphp 框架自动加载原理_ThinkPHP5分析Part 1 基本框架流程
ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能 ...
- tp5 日期范围查询_tp5(thinkPHP5框架)时间查询操作实例分析,tp5thinkphp5
tp5(thinkPHP5框架)时间查询操作实例分析,tp5thinkphp5 本文实例讲述了tp5(thinkPHP5框架)时间查询操作.分享给大家供大家参考,具体如下: 在项目中 可能会遇到 跨月 ...
- thinkphp 框架自动加载原理_thinkPHP5.0框架自动加载机制分析
本文实例讲述了thinkPHP5.0框架自动加载机制.分享给大家供大家参考,具体如下: 概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类 ...
- thinkphp 框架自动加载原理_这下你应该理解ThinkPHP的Loader自动加载了
想了很久终于要开始系列文章的编写了,期望是写出提升和面试都可以搞定的系列文章. 当你看到本文时,如果你发现咔咔没有编写到的面试热点问题或者技术难点,期待评论区指出,一起完善. 前言 目前再整理PHP进 ...
- phpexcel的自动加载与其他框架有冲突
2019独角兽企业重金招聘Python工程师标准>>> 一直想用phpEXCEL,这次这个项目遇到了.然而坑也出来了.phpexcel的Autoloader.php里面 public ...
- php 类自动执行,php类中的魔术方法及类的自动加载
类的模式方法都是 public 的,以 两个下划线开头,在某些情况下自动被调用,有点类似 hook 或者 事件触发. 魔术方法的传参方式不能使用引用. __construct() : 构造函数,实例化 ...
最新文章
- windows守护进程脚本
- Kaggle知识点:对比学习基础
- [蓝桥杯]最大连续子序列和
- linux 开发板传文件,linux下使用minicom传送文件到开发板
- 通用的linux下安装配置svn独立服务
- Jsp简单入门与Jsp实用教程总结
- 2021三跨985重庆大学917计算机上岸经验分享
- 超好用的纸飞机串口调试助手,支持绘图和关键字高亮
- 与速度对偶的角速度系公式
- doc 问卷调查模板表_调查问卷模板.doc
- sqlrelay mysql_SQL Relay使用
- js 身份证 正则校验 大陆、香港、澳门、台湾 身份证 正则校验
- 数学史思维导图_8张思维导图揭示:数学应该如何学,才能逆袭为学霸?
- [Java高级](二)泛型
- html兼容模式下不显示图片,HTML 邮件兼容问题与解决方案
- MUR10060CT-ASEMI快恢复模块MUR10060CT
- 揭秘子宫里的动物:小袋鼠仅软糖大小
- lrc编辑器 - Super LRC Editor发布
- 一次jenkins触发器的实验
- 装nvida显卡驱动后循环登录 闪退的方法UBUNTU16.04
热门文章
- 如何利用扩展欧几里得算法求解不定方程_欧几里德算法、拓展欧几里德、中国剩余定理...
- Windows 10如何连接和使用局域网内的打印机(非网络打印机)亲测有效、绝对管用,不定时更新!!!(更新日期2021.09.14,如有不会的可以直接私我)
- 网页信息上传服务器,Unity 连接网页服务器 获取数据上传数据
- krpano 场景切换 通知_一个基于Vulkan的异步场景加载设计
- 捡到vivo手机怎么清除账号_为什么现在买手机,很少会去考虑OPPO和vivo呢?看一下老板怎么说...
- docker 安装nacos_康过来!Nacos配置和管理微服务的使用
- 安装squid_「首席推荐」设置Squid转发代理或者正向代理
- DVWA File Inclusion——Writeup
- html5折叠卡片,基于HTML5折叠卡片式下拉菜单代码
- 扫地机器人返充原理_扫地机器人全解析