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(); //这一行代码的原理是什么呢?请 ...
随机推荐
- NET Framework安装失败的麻烦
本人机子环境是安装了VS2012,即安装了 .NET Framework4.5,现在要安装AutoCAD2013,而安装CAD2013需要安装4.0的Framework,由于本机已有高版本的Frame ...
- Makefile自动编写工具实例
准备源文件如下: /*test.c*/ #include <stdio.h>#include "phello.h"#include "pword.h" ...
- GDB高级使用方法
1.设置环境变量 用户可以在GDB的调试环境中定义自己需要的变量,用来保存一些调试程序中的运行数据.要定义一个GDB的变量很简单,只需使用GDB的set命令. GDB的环境变量和Linux一样,也是以 ...
- 数据挖掘学习指引<一>
对于当前热门的大数据.云计算等技术,被百度.阿里等国内互联网巨头炒的非常火,数据挖掘作为一门非常有用的技术,在商业管理.市场分析.科学计算等大数据方面发挥着大作用. 数据挖掘技术也变得非常火,why? ...
- 苹果开发——App内购以及验证store的收据(一)
原地址:http://zengwu3915.blog.163.com/blog/static/27834897201375105236580?suggestedreading 发了几天时间在网上折腾了 ...
- Android画图最基本的三个对象(Color,Paint,Canvas)
Android画图最基本的三个对象(Color,Paint,Canvas) 三个类都存放在 android.graphics包下 1) Color :颜色对象,相当于现实生活中的 ‘调料’ 2) Pa ...
- bzoj-1492 货币兑换Cash (2)——CDQ分治
题意: 略 见上一篇 题解: 方程还是那个方程f[i]=A[i] * X[j] + B[i] * Y[j]. 化简为Y[i]=(-A[i]/B[i]) * X[i] + f[i]/B[i]这一坨: 既 ...
- Solr 搜索功能使用
http://wiki.apache.org/solr/SolrQuerySyntax http://www.solrcn.com/index.php?s=查询
- Android用http协议上传文件
http协议上传文件一般最大是2M,比较适合上传小于两M的文件 [代码] [Java]代码 001import java.io.File; 002import java.io.FileInp ...
- 流类库继承体系(IO流,文件流,串流)和 字符串流的基本操作
一.IO.流 数据的输入和输出(input/output简写为I/O) 对标准输入设备和标准输出设备的输入输出简称为标准I/O 对在外存磁盘上文件的输入输出简称为文件I/O 对内存中指定的字符串存储空 ...