用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6068|回复: 14
收起左侧

[版本 2.x] 关于ci框架里用魔术方法(__call())

  [复制链接]
发表于 2011-11-2 10:05:28 | 显示全部楼层 |阅读模式
本帖最后由 yezihack 于 2011-11-3 17:27 编辑

在controller的test.php 里写一个__call魔术方法
class test extends CI_Controller{
     function __call($key,$args){
               echo "你调用的".$key."函数不存在, 传入的参是:".$args;
     }
}
浏览器输入:http://localhost/ci/test/abc/1
如果安照魔术方法来解释.在ci里调用test类名.abc方法不存在,和参数1.应该会输出上面的魔术方法.但实际运行里,找不到页面.有高手路过.请留步,帮帮小童鞋.非常感谢大侠.陆见不平.我乃三生有幸得到你的真教.哈哈.
有愿意一起研究ci的加入技术群:118176067
发表于 2011-11-2 10:44:24 | 显示全部楼层
class Test
 楼主| 发表于 2011-11-2 10:50:30 | 显示全部楼层
2楼,你啥意思.懂就告诉我
发表于 2011-11-2 11:51:44 | 显示全部楼层
class Test extends CI_Controller  类名要大写
发表于 2011-11-2 11:54:11 | 显示全部楼层
我试了一下__call(),我这儿也是报错找不到页面。
我不知道怎么解决,但是我猜测,是不是有个优先级的问题? 这个报错是ci自带的报错,是不是要配置一些参数,让 ci  先加载自己定义的方法,其次再加载 ci 自定义的报错信息?
我也不解,等待高人!
发表于 2011-11-2 11:54:45 | 显示全部楼层
类名跟他没有太大关系  大写了也不行。
发表于 2011-11-2 12:52:47 | 显示全部楼层
这个问题有点高深,看不懂
发表于 2011-11-2 14:06:33 | 显示全部楼层
当然了,因为还没运行到这里就被CI认定是404了,建议你阅读下源代码,看看CI的执行过程
 楼主| 发表于 2011-11-2 15:00:17 | 显示全部楼层
没有知道的吗.一起研究一下.
发表于 2011-11-2 22:25:13 | 显示全部楼层
高级玩家

本版积分规则