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
类定义被提升,就像函数定义一样(除非它们在条件语句块中)