2013-03-25 54 views
0

有没有方法在类函数内定义常量?
例子:在函数内定义一个PHP类常量

class ExampleApp 
{ 
    const FORM = TRUE; 

    public function __construct() 
    { 
     switch(Base::color()) 
     { 
      case 'green': 
       self::FORM = 'G'; 
       break; 
      case 'red': 
       self::FORM = 'R'; 
       break; 
      default: 
       self::FORM = 'W'; 
       break; 
     } 
    } 

    public function process() { return TRUE; } 
} 


上面的示例代码不会明显工作!

从我的编程知识你不能重新定义常数,否则他们将是“常量”。但是,如何在函数中定义一个costant?在我的例子中,函数是构造函数,还是完全不可能?

+0

调用它,您可以使用'define'宣布在运行时间,而不是分析时恒定获取表单的颜色。我会简单地使用一个变量,并承诺不会修改它。 – 2013-03-25 17:10:52

+0

似乎有一些混淆'恒定'与'静态' – Motes 2013-03-25 17:13:24

回答

5

没有通过保存它的属性。不是一个静态属性,只是一个有getter和setter的属性。

然后你就可以用$example_app->getFormColor();

7

我想你想的静态属性,而不是一个恒定的

public static $form = true;

但是,不要以大写字母把变量名的话,因为它不是一个常量,不混淆其他开发商。

您可以asccess像你在你的方法与self::form

+0

- >回复:我想解决方案将是使用一个“静态”变量(不是一个真正的常数,但表现为一个)内的功能或只是一个正常的常量使用define()。 – tfont 2013-03-25 17:45:24

+0

这真的取决于你想要做什么,但无论哪种方式,我认为你需要@Hayden在他的回答中建议的内容,或者我的答案与静态属性 – 2013-03-25 17:58:25

+1

访问“静态”属性时,您必须包含美元符号。访问'$ form'属性的正确方法是'self :: $ form'。 – 2015-07-23 09:01:09