设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
请教:怎么理解这个函数调用前面的& ...
返回列表
查看:
3297
|
回复:
5
[已解决]
请教:怎么理解这个函数调用前面的&
[复制链接]
jaka
jaka
当前离线
积分
7
IP卡
狗仔卡
发表于 2011-4-5 21:51:11
|
显示全部楼层
|
阅读模式
看CI的源码:在common.php文件中定义了 function is_loaded($class = '')
在Controller.php中有构造函数中有这样调用 $this->load->_base_classes =& is_loaded();
请问函数调用前面的&还需要么
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
jeongee
jeongee
当前离线
积分
5618
IP卡
狗仔卡
发表于 2011-4-5 22:09:32
|
显示全部楼层
本帖最后由 jeongee 于 2011-4-5 22:13 编辑
返回的是静态变量$_is_loaded的引用,应该是需要的(可以了解一下PHP变量的作用域吧,里面有将static的作用),这样就不需要在让其他地方更改$_is_loaded的值的时候,还要再一次进行一次$this->load->_base_classes = is_loaded();的操作了
回复
支持
反对
使用道具
举报
显身卡
jaka
jaka
当前离线
积分
7
IP卡
狗仔卡
楼主
|
发表于 2011-4-5 22:45:43
|
显示全部楼层
谢谢版主的回复,我觉得要返回静态变量$_is_loaded的引用,需要在函数定义前面也加上&,就是
function &is_loaded($class = ''),而在源码里面并没有加&,不知道是不是我误解了
回复
支持
反对
使用道具
举报
显身卡
jeongee
jeongee
当前离线
积分
5618
IP卡
狗仔卡
发表于 2011-4-5 23:05:43
|
显示全部楼层
本帖最后由 jeongee 于 2011-4-5 23:08 编辑
不需要的吧,即使function &is_loaded($class = '')
也只有这样& is_loaded();调用才会得到引用的。
另外,即使在is_loaded函数中写return &$_is_loaded;也是可以的
回复
支持
反对
使用道具
举报
显身卡
2009cms
2009cms
当前离线
积分
212
IP卡
狗仔卡
发表于 2011-4-25 19:28:37
|
显示全部楼层
函数名本身就已经是地址了吧?
回复
支持
反对
使用道具
举报
显身卡
jaka
jaka
当前离线
积分
7
IP卡
狗仔卡
楼主
|
发表于 2011-4-25 20:59:24
|
显示全部楼层
本帖最后由 jaka 于 2011-4-25 21:01 编辑
现在我已经明白了,函数前面加上&只是“引用了”函数is_loaded()返回的结果。而函数is_loaded在定义的时候前面没有加&,所以调用is_loaded(),返回的结果只是静态变量$_is_loaded的拷贝
最后的结果是,$this->load->_base_classes“引用了”静态变量$_is_loaded的一份拷贝
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页