让我们直接进入一些上下文代码。请阅读以下内容......
(1)这很好用:
new myClass();
class myClass{
// Stuff
}
(2)没有工作(找不到致命错误类):
if ($_POST['apikey'] == "foo") {
new myClass();
class myClass{
// Stuff
}
}
(3)上述解决方案:
if ($_POST['apikey'] == "foo") {
class myClass{
// Stuff
}
new myClass();
}
无法真正找到我为什么需要做我修复它的工作。我知道它是一种脚本语言,但为什么(1)会起作用?在我开始将它嵌入if语句或类似语言中时,它是否是某种生活质量的功能并不起作用?
答案 0 :(得分:7)
PHP在运行之前编译并解析脚本。所以它在开始执行脚本之前就知道了定义。
如果你有一个条件定义,这将被阻止,因为编译器在执行脚本之前不可能知道该条件将等同于什么。
在我看来,你永远不应该在条件中定义类,函数或常量。这就是变量的用途。