0

图书馆

class getLang {
   public function getText($en, $ar) {
      $CI =& get_instance();
      $lang = $CI->session->userdata('language');
      if ($lang == 'en') {
         $string = $en;
      } else if ($lang == 'ar') {
         if (!empty($ar)) {
            $string = $ar;   
         } else if (empty ($ar)) {
            $string = $en;
         }
      }
      return $string;
   }
}

控制器

class Home extends MY_Controller {
   public function test() {
      $this->load->library('getLang');
      return $this->getLang->getText('text', '');
   }
}

当我运行 home/test 时,我收到此错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Home::$getLang

Filename: controllers/home.php

Line Number: 6

我已经在 config/autoload 中加载了自定义库。看起来库没有加载,我也尝试在控制器中加载它,仍然无法正常工作!我该如何解决这个问题?

4

1 回答 1

9

CodeIgniter 的文档明确指出类名和文件名必须大写。从文档中

  1. 文件名必须大写。例如:Myclass.php
  2. 类声明必须大写。例如:类 Myclass
  3. 类名和文件名必须匹配。

这可能是它没有正确加载的原因。

在旁注中,一个名为的类getLang听起来是错误的。这听起来像是一种方法。我会建议一个名字,如Language, Translator, ...

编辑:文档还要求使用名称的小写版本来访问您的库。例子:$this->getlang->getText(...)

于 2013-02-08T18:58:11.810 回答