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

php
2022-08-30 16:33:39

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

我想执行以下操作:

<?php

class MyClass{

    public final static $finalVariable = "something";
}

MyClass::$finalVariable

并且永远不必担心更改并且每次实例化都没有新实例$finalVariableMyClass


答案 1

从 PHP 手册的此页面

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

但是,可以使用类常量,如此所述。

您的示例将如下所示:

<?php

class MyClass{
    const finalVariable = "something";
}

MyClass::finalVariable;
?>

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


答案 2

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

您应该考虑使用类常量,这将保证值不能更改。

class MyClass
{
    const FINALVARIABLE = "something";
}

// Usage
MyClass::FINALVARIABLE

推荐