Codeigniter 中的枚举:未定义 属性: ProjectStatus_Enum::$Open

Enumeration in Codeigniter: Undefined property: ProjectStatus_Enum::$Open

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

class ProjectStatus_Enum {

    const Open          =   1;
    const InProgress    =   2;
}

以下是控制器中的代码。

class ProjectController extends MY_Controller {

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

当这一行执行时...echo $this->projectstatus_enum->Open; 我遇到以下错误...

Undefined property: ProjectStatus_Enum::$Open

您必须对常量 (const) 使用 ::,对 class 属性使用 ->。所以在你的情况下使用

echo $this->projectstatus_enum::Open;

echo ProjectStatus_Enum::Open

库文件夹中的示例 class。

class ProjectStatus_Enum {

    const Open          =   1;
    const InProgress    =   2;
}

Class 变量将无法直接访问。

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;
    }
}