如何在php中包含文件后排除文件?

use*_*279 4 php require-once php-include

我们在里面添加一个文件Myfile.php:

require_once 'abc.php';
Run Code Online (Sandbox Code Playgroud)

要么

include_once 'abc.php';
Run Code Online (Sandbox Code Playgroud)

我们将如何删除文件?或者如何abc.php在某段代码之后停止访问文件内容?

Joh*_*ith 12

在PHP中,一旦包含资源,就无法删除或"取消包含".这是PHP文件包含的原理.请参阅:http://www.php.net/manual/en/function.include.php

include语句包括并评估指定的文件.

一旦解释器评估了您的代码,就完成了工作.已考虑所有操作,并且为了撤消更改,您必须执行相反的操作.例如,如果您包含的文件声明了该类,MyClass那么您将需要取消定义它,这也是不可能的,原因与上述相同.请参阅:取消设置等级.

如果您的文件实际上添加了函数而不是,那么从PHP 5.3起,您可以使用匿名函数.这使您可以将功能分配给变量,它可以未设置.有关详情,请参阅此答案.

如果代码逻辑的一部分必须在某个时刻消失,那么在实现之前你没有花足够的时间进行设计.

如果由于名称冲突需要撤消包含,则问题几乎相同.但是,在这种情况下的解决方案是使用名称空间.尽管如此,对应用程序设计进行一些审查应足以避免此类冲突.

编辑框架:单个框架不适合每个应用程序.例如,Symfony绝对在任何地方都使用命名空间来避免任何可能的冲突(但有些冲突).如果您的框架没有为您提供轻松区分具有相同名称的两个模型类的可能性,那么我会说它不适合(至少不适合您的设计).


joa*_*fgf 5

你不能。一旦加载就无法删除。

  • 这是一条评论。没有答案。 (10认同)
  • @JakeGould,问题是“如何...”,答案是“你不能”。我相信这是对主要问题的直接回答。 (4认同)
  • @JakeGould 事实上,确实如此。OP 的要求是不可能的,因此唯一正确的答案是“你不能”。其他任何事情都与语义或解决方法有关。然而,解释“为什么”将是一个很好的补充。 (4认同)