一旦PHP需要文件,就不需要文件

时间:2014-07-25 16:40:27

标签: php function include declaration require

假设我

require('lol.php');

其中lol.php包含以下函数声明

function lolfunc(){

}

是否可能"不需要" lol.php这样我就可以再需要另一个文件

require('lol2.php');

其中lol2.php包含一个先前在lol.php中声明的具有相同名称的函数:

function lolfunc(){
  echo "this is lol2 biyotch";
}

并让lolfunc()成为lol2.php中声明的那个?例如,如果我打电话给lolfunc()它会回复"这是lol2 biyotch" ??

2 个答案:

答案 0 :(得分:1)

我的回答:不要这样做。

尝试与原作者合作,将所需的功能包含在旧代码的修补版本中,然后在任何地方使用该修补版本。

如果您不能这样做,请了解将所有代码更新为新版本的实际工作量。从白盒分析开始:了解接口,数据结构等方面的变化。然后检查调用代码,看看调用者是否关心任何已经发生变化的事情。

如果您甚至不能这样做,请使用命名空间或其他形式的包装,以便您可以包含两个库。但是,请确保在两个库上完成任何初始化或设置!

答案 1 :(得分:0)

您应该做的是根据条件条款包含所需的(集)文件,而不是尝试"不需要"。

所以:

if($flag_use_oldver)
{
  include("oldver.php");
}
else
{
 include("newver.php");
}

如果你想要一个更复杂的解决方案,当然你可以尝试一个包装类层次结构,它将根据需要进行扩展/覆盖,但我认为这对于一个非常简单的问题陈述来说有点过度工程。