使用未定义的常量ADMIN - 假设为'ADMIN'

时间:2010-09-11 11:34:08

标签: php constants

我在运行代码时收到错误Use of undefined constant NORMAL - assumed 'NORMAL',我发现代码没有错误

var $type;

    const NORMAL=1;
    const ADMIN=2;

    public function getTypeOptions(){
        return array(
            self::NORMAL=>'Normal',
            self::ADMIN=>'Administrator',
        );
    }

    public function getTypeText(){

        $options[NORMAL];
        $options[ADMIN];

        $options=$this->getTypeOptions();
        return $options;
    }

    public function getTypeByText($type){
        $options = $this->getTypeText();
        if($type == 1){
            return $options[1];
        }else if($type == 2){
            return $options[2];
        }
    }

每当我将getTypeByText方法调用type = 2

的值时,我都会得到这个

1 个答案:

答案 0 :(得分:2)

引用全局常量,需要引用局部常量。

$options[self::NORMAL];
$options[self::ADMIN];

应该有效

只是一个注释,看看你的类::方法的构建方式,你实际上并不需要上面这个,下面的工作就可以了。

public function getTypeText()
{
    return $this->getTypeOptions();
}