是否存在公共静态最终类变量

时间:2013-08-16 12:57:13

标签: php

在Jave中,您可以在类中定义public static final变量。在PHP中是否有相同的东西?

我想做以下事情:

<?php

class MyClass{

    public final static $finalVariable = "something";
}

MyClass::$finalVariable

并且永远不必担心$finalVariable更改并且没有为MyClass

的每个实例化设置新实例

2 个答案:

答案 0 :(得分:38)

来自PHP手册中的this page

  

注意:属性不能声明为final,只有类和方法可以声明为final。

但是,您可以按照here所述使用类常量

你的例子看起来像这样:

<?php

class MyClass{
    const finalVariable = "something";
}

MyClass::finalVariable;
?>

当然,finalVariable不是一个合适的名称,因为它不是变量=)。

答案 1 :(得分:4)

PHP OOP中的成员变量没有finalreadonly个关键字/概念。 final本身可用于类本身和仅包含在其中的函数。

您应该考虑使用的是class constant,这样可以保证价值不会发生变化。

class MyClass
{
    const FINALVARIABLE = "something";
}

// Usage
MyClass::FINALVARIABLE