4

在 PHP 文档中它说:

类应该在实例化之前定义(在某些情况下这是一个要求)。

有人可以给我一个无法实例化的类的示例,除非它是先前定义的吗?

4

2 回答 2

4
if (true) {
    new Foo;
    class Foo { }
}

解析规则与函数相同:如果它们是在文件的“顶层”中定义的,那么它们会在文件解析期间被解析。如果它们是在一段需要运行时评估的代码中定义的,那么类或函数将仅在代码执行时定义,在这种情况下,在它被“执行”之前你不能使用它。

于 2013-10-21T06:04:21.147 回答
0
<?php
// Top Level

trait T {
}

$c = new C();

class C {
    use T;
}

使用 trait,此代码会出现错误 ( Class 'C' not found in...)。

于 2021-12-15T07:27:06.497 回答