CI框架中 类名不能以方法名相同
昨天晚上一个坑爹的问题折腾了我一晚上,首先我来说下我的代码,我建立了一个index的控制器然后呢 在控制器里有一个index的方法。页面模板都有。
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Index extends CI_Controller{
public function index(){
$this->load->view('index.html');
}
}
然后你在浏览器中运行的话。就会出错...出错的页面如下。

看到这错误信息,我以为是控制出错,但是仔细检查发现没有错。然后我就开始怀疑是不是win7上的权限问题。然我给文件夹加上admin权限。发现还是这个问题..........,蛋疼呀~!~
我又以为是框架包的原因可能是我不小心删除了某个东西。然后我又从CI官网下载新的框架,从新搭建项目框架。发现还是这个错误[备注:当时心碎了,使劲的砸了鼠标几次,可怜的鼠标就当一次我的发泄品吧~!~]。。。。这样反反复复的折腾了我几个小时,看下手机上的时间我差 12点多....好吧 睡觉去吧。躺在床上还在想这个问题,我以前做过的几个项目也是用CI框架来做的啊,为什么没有这样的问题呢....... 就这样想着想着解决办法,就睡着了。。。。。。。。。
第二天快速的来到公司,从新搭建起昨晚相同的错误的框架,然后跟以前用CI框架做的项目,写的进行对比了下。咳咳,还真的找出原因来,原来是我控制器名和方法名不一样。然后我就改动着那个报错框架,把方法名换了一下,我查竟然好了。
然后我就开始思考为啥类名跟方法名相同就会报错呢
........................
想了会,原来是每一个类中都有一个相同名称的隐式的构造方法,如果自己在写一个的跟类名相同的方法名的话,就会跟构造方法冲突。
其实还有一种方法也可以解决,那就是在构造方法中继承父类的构造函数,因为子类可以从写父类的方法这样的话就不会报错了。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Index extends CI_Controller {
public function __construct(){
parent::__construct();
}
public function index()
{
$this->load->view('show.html');
}
}
CI框架中 类名不能以方法名相同的更多相关文章
- CI 框架中的自定义路由规则
在 CI 框架中,一个 URL 和它对应的控制器中的类以及类中的方法是一一对应的,如: www.test.com/user/info/zhaoyingnan 其中 user 对应的就是控制器中的 us ...
- php CI框架中URL特殊字符处理与SQL注入隐患
php CI框架中URL特殊字符处理与SQL注入隐患 php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分类,字符都无法正常显示很头痛,而在配置里增加单引号' 反斜杠\ 这 ...
- php json_encode在CI框架中的使用细节
这个错误的造成原因是加载类类库,转换成json格式的时候不熟悉CI框架的规定导致的,CI框架中规定在将数据转换成json格式的时候需要将类库小写,当然了,调用的时候必须保证有这个类库,且可以在对应的文 ...
- CI框架中集成CKEditor编辑器的教程
CKEditor是在很多开发过程中都会用到的一个富文本编辑器,那么如何在CI框架中使用它呢?这里介绍了在CI下使用CKEditor的方法,版本比较低,是在CI 1.7.3下使用fckeditor 2. ...
- CI 框架中的日志处理 以及 404异常处理
最近在整理项目中的日志问题,查了一些关于 “CI 框架中的日志处理 以及 404异常处理” 的东西,顺便记录一下: 关于错误日志: 1. 在CI框架中的 system/core/CodeIgniter ...
- CI框架中的奇葩
今天在win下开发,使用ci框架,本来是没有任何问题,然后转向了mac上开发,结果出现了个奇葩的问题,就是在ci框架中,控制器命名以"Admin_"为前缀的,在url中,控制器也必 ...
- 对CI框架中几个文件libraries
对CI框架中几个文件libraries,helpers,hooks夹说明 来源:未知 时间:2014-10-20 11:37 阅读数:117 作者:xbdadmin [导读] 1.lib ...
- CodeIgniter(CI)框架中的验证码
在CodeIgniter框架中,CI本身自带了验证码,但是查看文档的时候,发现: 需要新建一个表,用来存储验证码信息.因为习惯了session存储验证码信息,所以我把我认为比较好看的验证码应用在了CI ...
- CI框架中自定义view文件夹位置
要想自定义view文件夹的位置,首先要了解CI框架时如何加载view文件夹的. CI中默认调用view的方法是: $this->load->view(); //这一行代码的原理是什么呢?请 ...
随机推荐
- Android 实现透明效果的 Activity
Android系统提供了将Activity设置为透明的主题:@android:style/Theme.Translucent 该属性同一时候支持隐藏TitleBar和全屏显示. 仅仅须要在Androi ...
- windows设置文件夹显示缩略图
windows设置文件夹显示缩略图 CreateTime--2017年7月26日16:32:59Author:Marydon 为什么要显示缩略图? a.显示缩略图后,图片文件能够直接显示内容,不能 ...
- HBase源代码分析之HRegionServer上MemStore的flush处理流程(一)
在<HBase源代码分析之HRegion上MemStore的flsuh流程(一)>.<HBase源代码分析之HRegion上MemStore的flsuh流程(二)>等文中.我们 ...
- P2P原理
简单介绍 前面文章在分布式计算泛型中介绍过P2P泛型.他是一种是一种无中心server的对等网络泛型. P2P即Peer-to-Peer的缩写.翻译为点对点或者端对端.就是我们常说的对等计算. P2P ...
- 【JS】jQuery中将数组转换成字符串join()和push()使用
1.push()将元素依次添加至数组:2.join()将数组转换成字符串,里面可以带参数分隔符,默认[,] <script type = text/javascript> $(docume ...
- PHP Token(令牌)设计应用
转自:http://my.oschina.net/u/912810/blog/358973 <?php class GEncrypt { protected static function ke ...
- C#指南,重温基础,展望远方!(7)C#结构
结构是可以包含数据成员和函数成员的数据结构,这一点与类一样:与类不同的是,结构是值类型,无需进行堆分配. 结构类型的变量直接存储结构数据,而类类型的变量存储对动态分配的对象的引用. 结构类型不支持用户 ...
- some nets were not able to be matched
原因是:PCB画好之后再次更改原理图,将更改后的原理图更新至PCB的时候会导致原理图中新生成的网络和PCB中原有的网络名不匹配 解决办法:PCB---设计----网络表---编辑网络,把PCB中不匹配 ...
- ui-router详解(二)ngRoute工具区别
我们了解 angular.js 是一种富客户端单页面应用,所以要在一个页面呈现不同的视图,路由起到了至关重要的作用. angular.js 为我们封装好了一个路由工具 ngRoute ,它是一种靠ur ...
- atitit.编程语言的未来趋势与进化结果
atitit.编程语言的未来趋势与进化结果 1 语言就像物种一样,会形成进化树,没有前途的分支将枯死脱落. 1 2 机器语言 1 3 汇编语言 2 4 C语言, 硬件抽象层 2 5 高级语言:java ...