【发布时间】:2012-03-13 17:20:20
【问题描述】:
我正在管理一个 PHP 应用程序,我们现在想启用 APC。问题是我们有两个相互需要的类。一个非常基本的示例如下所示:
in class_a.php
require_once('path/to/class_b.php)';
class a extends something {
//
}
in class_b.php
require_once('path/to/class_a.php');
class b extends something2 {
//
}
但是,当我们启用 APC 时,会出现“[apc-error] Cannot redeclare class class_b in class_b.php”。好的,那是因为已经通过 class_a.php 中的 require_once() 加载了该类,所以如果某个第 3 个文件需要 class_b.php,APC 将引发错误。
如何解决这个“循环引用式”问题?
【问题讨论】:
-
你有哪个版本的PHP?确保路径完全相同。如果您未指定完整路径,请确保您的 include_path 中的某处没有具有相同名称的延迟文件。
-
尝试使用自动加载器 - 这将防止您在此类问题中回退
-
PHP 5.3 和 APC 是最新版本。所有包含路径都是绝对的并且完全相同。
标签: php opcode-cache