PHP:变量中的常量名称

php_nub_qq

我有一个看起来像这样的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函数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用变量的类名访问PHP中带有名称空间的类常量?

来自分类Dev

在 XMLwriter PHP 中定义变量或常量

来自分类Dev

获取包中声明的所有变量和常量名称

来自分类Dev

C 中的预编译“变量”常量的名称是什么?

来自分类Dev

在常量名称中使用变量

来自分类Dev

在php变量中声明一个php常量

来自分类Dev

如何在PHP中按属性/常量名称识别类

来自分类Dev

获取在PHP中作为参数传递的常量的名称

来自分类Dev

SQL列名称中的PHP变量

来自分类Dev

mysql查询中的PHP变量名称

来自分类Dev

PHP将变量与常量连接

来自分类Dev

PHP常量成员变量

来自分类Dev

在PHP中的Concat常量

来自分类Dev

在PHP中定义常量

来自分类Dev

VHDL中的变量和常量

来自分类Dev

在php中:如何设置<select name = [php变量名称]>?

来自分类Dev

当两个类在PHP中具有相同的名称时,如何引用所需的常量?

来自分类Dev

定义要在不同名称空间php 5.4中使用的常量

来自分类Dev

如何在symfony 2 php中的注释中访问类变量和常量

来自分类Dev

使用常量作为angular中的状态名称

来自分类Dev

需要计算 vhdl 中的常量名称

来自分类Dev

具有相同名称的变量和常量

来自分类Dev

PHP:如何在函数名称中添加变量?

来自分类Dev

用于Postgresql查询的PHP中列名称的绑定变量

来自分类Dev

通过PHP中的变量在名称空间中调用类

来自分类Dev

使用变量名称在PHP中处理多维数组

来自分类Dev

使用变量的值作为PHP中的数组名称?

来自分类Dev

如何在变量中存储php页面名称?

来自分类Dev

PHP-将会话链接的名称存储在会话变量中