所以我有一个名为 WingStyle 的项目:https://github.com/IngwiePhoenix/WingStyle 它还处于开发阶段,我需要一些能让它变得更聪明的东西。
在某种程度上,我想摆脱一些引用 - 以“html”为例。当用户调用尚未存在的函数时,框架会为此目的自动加载类,然后运行该函数。在自动加载过程中,会触发__construct
方法。
我们以函数 color
为例。在正常情况下,用户会这样称呼它:
<?=WS(...)
->color("white")
->end?>
但是你可能知道,我们有一组默认颜色 - 白色,黑色,红色,橙色等等。现在的问题是,当我尝试使用上面的代码没有引号时,我得到了典型的{ {1}}错误。这就是为什么我在一个加载器函数中编码,它只触发初始化代码,然后添加所需的常量。
据我所知,解释器在执行代码之前会看到未定义的常量 - 当然,在常量进入之前我无法触发初始化代码...
有没有办法可以让解释器首先触发初始化代码然后看到常量?我真的不介意坚持使用我的加载方法,但它只是让人很烦恼。我真的想知道一种可以动态添加常量的方法。
查看项目来源,了解我的意思。
问题中的功能和机制可在以下网址找到:
"use of undefined constant"
答案 0 :(得分:0)
我认为在PHP中添加动态常量是一种很好的方法,但理论上你可以编写然后导入自定义* .php文件或其他东西。
当然,这打破了“常数”的含义。如果它在运行时发生变化,你真的想要一个全局变量。
这两个都不会对你有所帮助,因为如果你或其他人打电话给->color(white)
白色会被评估之前它将被传递给color
,在你的调用应用程序的上下文中。如果你想允许这种行为发生,只需在早期声明white
常量并在代码中放弃使用它。