有意使用未定义的常量

时间:2013-06-09 14:30:35

标签: php css oop

所以我有一个名为 WingStyle 的项目:https://github.com/IngwiePhoenix/WingStyle 它还处于开发阶段,我需要一些能让它变得更聪明的东西。

在某种程度上,我想摆脱一些引用 - 以“html”为例。当用户调用尚未存在的函数时,框架会为此目的自动加载类,然后运行该函数。在自动加载过程中,会触发__construct方法。

我们以函数 color 为例。在正常情况下,用户会这样称呼它:

<?=WS(...)
    ->color("white")
->end?>

但是你可能知道,我们有一组默认颜色 - 白色,黑色,红色,橙色等等。现在的问题是,当我尝试使用上面的代码没有引号时,我得到了典型的{ {1}}错误。这就是为什么我在一个加载器函数中编码,它只触发初始化代码,然后添加所需的常量。

据我所知,解释器在执行代码之前会看到未定义的常量 - 当然,在常量进入之前我无法触发初始化代码...

有没有办法可以让解释器首先触发初始化代码然后看到常量?我真的不介意坚持使用我的加载方法,但它只是让人很烦恼。我真的想知道一种可以动态添加常量的方法。

查看项目来源,了解我的意思。

问题中的功能和机制可在以下网址找到:

"use of undefined constant"

1 个答案:

答案 0 :(得分:0)

我认为在PHP中添加动态常量是一种很好的方法,但理论上你可以编写然后导入自定义* .php文件或其他东西。

当然,这打破了“常数”的含义。如果它在运行时发生变化,你真的想要一个全局变量。

这两个都不会对你有所帮助,因为如果你或其他人打电话给->color(white)白色会被评估之前它将被传递给color,在你的调用应用程序的上下文中。如果你想允许这种行为发生,只需在早期声明white常量并在代码中放弃使用它。