[英]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.