25

在 Jave 中,您可以在类中定义public static final变量。PHP中是否有与此等价的功能?

我想做以下事情:

<?php

class MyClass{

    public final static $finalVariable = "something";
}

MyClass::$finalVariable

并且不必担心$finalVariable每次实例化都会发生变化并且没有新实例MyClass

4

2 回答 2

43

从PHP 手册中的这个页面:

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

但是,您可以使用此处描述的类常量

您的示例将如下所示:

<?php

class MyClass{
    const finalVariable = "something";
}

MyClass::finalVariable;
?>

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

于 2013-08-16T13:00:43.587 回答
4

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

您应该考虑使用的是类常量,这将保证该值不会改变。

class MyClass
{
    const FINALVARIABLE = "something";
}

// Usage
MyClass::FINALVARIABLE
于 2013-08-16T13:00:04.910 回答