我收到一个致命错误:Fatal error: Class 'Foo1' not found in .../Foo2.php on line 5
使用以下文件:
索引.php:
<?php
require_once("./Foo1.php");
?>
<h1>Success</h1>
Foo1.php:
<?php
require_once('./IFoo.php');
require_once('./Bar.php');
class Foo1 implements IFoo
{
/** @var Bar */
private $bar;
}
IFoo.php:
<?php
interface IFoo {
}
酒吧.php:
<?php
require_once('./Foo2.php');
class Bar {
/** @var Foo2 */
private $foo;
}
Foo2.php:
<?php
require_once("./Foo1.php");
class Foo2 extends Foo1
{
}
问题:
- 如何解决这种情况?
- 为什么当我禁止
implements IFoo
声明时,此代码有效?
更新 提出的大多数解决方案都涉及自动加载。不幸的是,我的问题出在一个有很多现有代码和很多不良做法的旧项目上。我们离 PSR-0 标准还很远。
在性能方面引入自动加载的成本是多少?