1. ホーム
  2. php

[解決済み] PHP - クラス内部で定数を定義する

2022-02-03 06:05:17

質問

クラス内で定数を定義し、クラスコンテキストで呼び出されたときのみ表示されるようにするにはどうすればよいですか?

というような Foo::app()->MYCONSTANT;

(のように呼び出された場合)。 MYCONSTANT 無視される)

どのように解決するのですか?

参照 クラス定数 :

class MyClass
{
    const MYCONSTANT = 'constant value';

    function showConstant() {
        echo  self::MYCONSTANT. "\n";
    }
}

echo MyClass::MYCONSTANT. "\n";

$classname = "MyClass";
echo $classname::MYCONSTANT. "\n"; // As of PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo $class::MYCONSTANT."\n"; // As of PHP 5.3.0

この場合、エコー MYCONSTANT を出力します。 常数 の名前を文字列に変換したものです。 "MYCONSTANT" .


エディテージ - おそらく、あなたが求めているものは、これでしょう 静的プロパティ / 変数 :

class MyClass
{
    private static $staticVariable = null;

    public static function showStaticVariable($value = null)
    {
        if ((is_null(self::$staticVariable) === true) && (isset($value) === true))
        {
            self::$staticVariable = $value;
        }

        return self::$staticVariable;
    }
}

MyClass::showStaticVariable(); // null
MyClass::showStaticVariable('constant value'); // "constant value"
MyClass::showStaticVariable('other constant value?'); // "constant value"
MyClass::showStaticVariable(); // "constant value"