在if语句中查找类的特殊条件?

时间:2016-12-23 16:17:27

标签: php

让我们直接进入一些上下文代码。请阅读以下内容......

(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语句或类似语言中时,它是否是某种生活质量的功能并不起作用?

1 个答案:

答案 0 :(得分:7)

PHP在运行之前编译并解析脚本。所以它在开始执行脚本之前就知道了定义。

如果你有一个条件定义,这将被阻止,因为编译器在执行脚本之前不可能知道该条件将等同于什么。

在我看来,你永远不应该在条件中定义类,函数或常量。这就是变量的用途。