CI框架中 類名不能以方法名相同

2021-09-08 17:14:58 字數 905 閱讀 4618

昨天晚上乙個坑爹的問題折騰了我一晚上,首先我來說下我的**,我建立了乙個index的控制器然後呢  在控制器裡有乙個index的方法。頁面模板都有。

if ( ! defined('basepath')) exit('no direct script access allowed');

class index extends

ci_controller

}

然後你在瀏覽器中執行的話。就會出錯...出錯的頁面如下。

看到這錯誤資訊,我以為是控制出錯,但是仔細檢查發現沒有錯。然後我就開始懷疑是不是win7上的許可權問題。然我給資料夾加上admin許可權。發現還是這個問題..........,蛋疼呀~!~

第二天快速的來到公司,從新搭建起昨晚相同的錯誤的框架,然後跟以前用ci框架做的專案,寫的進行對比了下。咳咳,還真的找出原因來,原來是我控制器名和方法名不一樣。然後我就改動著那個報錯框架,把方法名換了一下,我查竟然好了。

然後我就開始思考為啥類名跟方法名相同就會報錯呢

想了會,原來是每乙個類中都有乙個相同名稱的隱式的構造方法,如果自己在寫乙個的跟類名相同的方法名的話,就會跟構造方法衝突。

其實還有一種方法也可以解決,那就是在構造方法中繼承父類的建構函式,因為子類可以從寫父類的方法這樣的話就不會報錯了。

<?php if ( ! defined('basepath')) exit('no direct script access allowed');

class index extends

ci_controller

public

function

index()

}

CI框架擴充套件系統核心類的方法分析

首先你系統擴充套件類是放在application core下面的,本來系統核心類是ci controller,所以你不能以ci 開頭了,你需要開啟 application config config.php 修改 config subclass prefix程式設計客棧 my 為你的字首 一些公共的...

CI框架實現建立自定義類庫的方法

當我們使用 類庫 這個詞的時候,通常我們指的是位於 libraries 這個目錄下的那些類。接下來我們將介紹 如何在 application l程式設計客棧ibraries 目錄下建立你自己的類庫,和全域性的框架類庫獨立開來。另外,如果你希望在現有的類庫中新增某些額外功能,codeigniter 允...

As中獲取物件類名的常用方法

as中獲取物件類名的常用方法 getclassname submitted by ryan on wed,09 01 2010 22 38 1.mx.core.uicomponent.classname string 如果要操作的物件是uicomponent,可以直接訪問它的classname屬性,...