【问题标题】:Enumeration in Codeigniter: Undefined property: ProjectStatus_Enum::$OpenCodeigniter 中的枚举:未定义的属性:ProjectStatus_Enum::$Open
【发布时间】:2016-02-27 12:30:05
【问题描述】:

我在库文件夹中创建了一个类。

class ProjectStatus_Enum {

    const Open          =   1;
    const InProgress    =   2;
}

以下是Controller中的代码。

class ProjectController extends MY_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->library("ProjectStatus_Enum");
        echo $this->projectstatus_enum->Open;
    }
}

当此行执行时...echo $this->projectstatus_enum->Open; 我遇到错误...

未定义属性:ProjectStatus_Enum::$Open

【问题讨论】:

    标签: php codeigniter codeigniter-2 codeigniter-3


    【解决方案1】:

    库文件夹中的示例类。

    class ProjectStatus_Enum {
    
        const Open          =   1;
        const InProgress    =   2;
    }
    

    类变量将无法直接访问。

    class ProjectController extends MY_Controller {
    
        function __construct()
        {
            parent::__construct();
            $this->load->library("ProjectStatus_Enum");
            $ProjectStatus = $this->projectstatus_enum;//=> Direct variable call will not work
            echo $ProjectStatus::Open;
        }
    }
    

    【讨论】:

      【解决方案2】:

      你必须使用 :: 来表示常量 (const) 和 -> 来表示类属性。所以在你的情况下使用

      echo $this->projectstatus_enum::Open;
      

      echo ProjectStatus_Enum::Open
      

      【讨论】:

      • 您缺少一些东西。我刚刚让代码工作。请查看我的帖子,非常感谢您的帮助。
      • 啊,是的,这并不是一个完整的示例,更多的是朝着正确的方向前进,很好,你让它工作了!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 2017-04-02
      相关资源
      最近更新 更多