类存在于同一个文件中


Class exist in same file

php是一种脚本语言,所以类定义语句应该在声明或使用类之后存在。

为什么在php中可以声明和使用之前在同一个文件中声明的类?

<?php 
var_dump(class_exists('TestClass'));#outputs true, why ? 
$obj = new TestClass();
$obj->hello();
var_dump('final');
class TestClass{
    function hello(){
        var_dump('hello');
    }
}

输出是:

bool(true) string(5) "hello" string(5) "final"

回答:我创建了一个示例来理解在javascript和php中提升,参见https://gist.github.com/AndresRicardoTorres/5815833

类定义被提升,就像函数定义一样(除非它们在条件语句块中)