[英]PHP: Constant name from a variable
我有一個看起來像這樣的PHP類
class Painter {
const COLOR_PHYSIC = 'brown';
const COLOR_PSYCHIC = 'purple';
const COLOR_ATTACKER = 'dodgerblue';
const COLOR_DEFENDER = 'darkorange';
public function __call($name, $arguments) {
if(defined('self::'.$name)) $name = self::$$name;
return '<span class="'.$name.'">'.$arguments[0].'</span>';
}
}
返回字符串的彩色html表示形式。 用法示例:
$painter->red('Text'); // <span class="red">Text</span>
我還希望有一些可以在將來更改的預設顏色,如果需要的話,這就是我要堅持的地方。
如果我跑這條線
$painter->COLOR_DEFENDER('Text');
我收到錯誤消息
訪問未聲明的靜態屬性:Painter :: $ COLOR_DEFENDER
如何修改代碼,以便可以將$name
解釋為常量?
另外,我很想知道,如果我要更改將預設顏色存儲到數組而不是常量的方法,那會不會使用更少的內存? 如果更熟悉幕后PHP的人可以回答這個問題,我將非常高興。 提前致謝!
if (defined('self::' . $name)) {
$name = constant('self::' . $name);
}
要動態檢索常量,您需要使用constant
函數 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.