使用包含常數名稱的簡單變數來存取類別常數
P粉691461301
P粉691461301 2023-10-20 14:57:01
0
2
447

我正在嘗試存取我的一個類別中的類別常數:

const MY_CONST = "value";

如果我有一個變數來保存這個常數的名稱,如下所示:

$myVar = "MY_CONST";

我可以以某種方式存取 MY_CONST 的值嗎?

self::$myVar

這顯然不起作用,因為它是針對靜態屬性的。 另外,變數變數也不起作用。

P粉691461301
P粉691461301

全部回覆 (2)
P粉404539732

沒有對應的語法,但您可以使用明確查找:

print constant("classname::$myConst");

我相信它也適用於self::

    P粉103739566

    有兩種方法可以做到這一點:使用constant函數或使用反射

    常數函數

    常數函數適用於透過define宣告的常數以及類別常數:

    class A { const MY_CONST = 'myval'; static function test() { $c = 'MY_CONST'; return constant('self::'. $c); } } echo A::test(); // output: myval

    反射類別

    第二種更費力的方法是透過反射:

    $ref = new ReflectionClass('A'); $constName = 'MY_CONST'; echo $ref->getConstant($constName); // output: myval
      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!