25

public static finalJaveでは、クラスで変数を定義できます。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 には、メンバー変数のキーワードや概念finalなどはありません。それ自体は、クラス自体とそれに含まれる関数でのみ使用できます。readonlyfinal

代わりに使用を検討する必要があるのはクラス定数です。これにより、値が変更できないことが保証されます。

class MyClass
{
    const FINALVARIABLE = "something";
}

// Usage
MyClass::FINALVARIABLE
于 2013-08-16T13:00:04.910 に答える