2012-02-07 51 views
0

可能重复:
Undeclare a class in PHP如何多次要求一个包含类的PHP文件?

有在A.php类A和B中B.php。我在A的函数之一中创建了一个B的新实例。在该函数中,我更改了B.php文件和它的结构,我想在A.php的继续行中使用新的B.php。

如果我把它require 'B.php'说:Fatal error: Cannot redeclare class B

有没有办法从内存中删除“类” B,并再次要求呢?

我正在使用一个名为Doctrine的ORM我有一个表单生成器,可以为实体生成文件,所以当表单提交时,我必须更改一个实体的文件并重新使用它,并且使用新的对象!这是我的实际问题

还有什么办法可以包含一个文件作为另一个名称,如Python?在python中我们说import sys as MyName

+1

这听起来像一个糟糕的设计,特别是如果你问有关强制PHP重新声明一个以前定义的类。你可能想重新考虑你的方法。 – nickb 2012-02-07 13:19:00

+1

更改一个php脚本的代码看起来很奇怪。你真的**需要**吗? – k102 2012-02-07 13:20:22

+0

你为什么要这么做?你想如何删除所有这些'B'的实例和所有继承自'B'的类以及它们的所有实例?这是写得很差的软件,除非你会解释做这件事的原因。 – Tadeck 2012-02-07 13:20:35

回答

-5

您必须使用函数require_once('B.php')include_once('B.php')这样才不会发送警告。在那里,我需要从内存中删除类。 WP使用这个功能。

http://cz2.php.net/include_once

http://cz2.php.net/require_once

+0

-1不,请阅读问题。您的答案不仅不正确,而且完全无助于OP。 – nickb 2012-02-07 13:19:55

+1

老兄你为什么要投票-1,问题不在于设计。好。它的代码 – 2012-02-07 13:20:50

+3

因为你的答案不仅仅是错误的(两个函数都会引发OP发布的SAME错误),它不会回答原来的问题,因此爱好-1票。 – nickb 2012-02-07 13:23:42

0

也许存在着阶级双方你a.php只会和b.php相同,