Search code examples
phpcodeignitercodeigniter-2codeigniter-3

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


I created a class in Library Folder.

class ProjectStatus_Enum {

    const Open          =   1;
    const InProgress    =   2;
}

and below is the code in Controller.

class ProjectController extends MY_Controller {

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

when this line executes...echo $this->projectstatus_enum->Open; I am getting below error..

Undefined property: ProjectStatus_Enum::$Open


Solution

  • Sample class in Library Folder.

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

    Class variable will not be accessible directly.

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