0

我有以下代码用于创建一个类,但是当带有他的 costructor 的类加载时,我得到一个错误:

    Class DropDown {
        public function __construct() 
        {
            if ( ! function_exists('form'))
            {
(line 11)   $this->load->helper('form');
            }
        }

和错误

A PHP Error was encountered

Severity: Notice

Message: Undefined property: DropDown::$load

Filename: helpers/dropdown_helper.php

Line Number: 11

提前谢谢大家

4

3 回答 3

0

您必须将 CodeIgniter 对象分配给一个变量:

$CI =& get_instance();
$CI->load->helper('form');

如果不想使用$CI,可以继续使用$this

只需将__get方法添加到您的课程中,您就可以使用$this->load格式。

public function __get($var)
{
   return get_instance()->$var;
}
于 2013-08-30T07:51:46.293 回答
0

DropDown是什么?你必须扩展 CI_*,你不能使用 $this->load,你的类中没有这样的功能。

或者使用 $CI = &get_instance(); 然后用 $CI 替换 $this

于 2013-08-30T07:51:57.080 回答
0

而不是Bora的答案,您可以CI controller像这样扩展

Class DropDown extends CI_Controller {

    public function __construct() 
    {
        if ( ! function_exists('form'))
        {
             $this->load->helper('form');
        }
    }
于 2013-08-30T09:58:21.547 回答