假设我
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" ??
答案 0 :(得分:1)
我的回答:不要这样做。
尝试与原作者合作,将所需的功能包含在旧代码的修补版本中,然后在任何地方使用该修补版本。
如果您不能这样做,请了解将所有代码更新为新版本的实际工作量。从白盒分析开始:了解接口,数据结构等方面的变化。然后检查调用代码,看看调用者是否关心任何已经发生变化的事情。
如果您甚至不能这样做,请使用命名空间或其他形式的包装,以便您可以包含两个库。但是,请确保在两个库上完成任何初始化或设置!
答案 1 :(得分:0)
您应该做的是根据条件条款包含所需的(集)文件,而不是尝试"不需要"。
所以:
if($flag_use_oldver)
{
include("oldver.php");
}
else
{
include("newver.php");
}
如果你想要一个更复杂的解决方案,当然你可以尝试一个包装类层次结构,它将根据需要进行扩展/覆盖,但我认为这对于一个非常简单的问题陈述来说有点过度工程。