【问题标题】:PHP: Including files dependent on each otherPHP:包括相互依赖的文件
【发布时间】:2017-08-15 13:53:47
【问题描述】:

两个文件相互依赖:

文件1:

$var1 = 'Straw ' . $var2;

文件2:

$var2 = ' berry';
$var3 = $var1;

文件3:

// this file should include FILE1 and FILE2

应该如何在 FILE3 中包含 FILE1 和 FILE2 以确保正确填充三个变量?

谢谢。

【问题讨论】:

  • 这是一个循环依赖。这简直就是糟糕的设计。如果两个文件相互依赖,请将它们放在同一个文件中。

标签: php file-inclusion


【解决方案1】:

实际上,由于您的设计,无论您包含它们的顺序如何,您都会收到有关未定义变量的警告 - 因为文件 1 需要 $var2 而文件 2 需要 $var1

改为执行以下操作:

$var2 = 'berry';
$var1 = 'Straw ' . $var2;
$var3 = $var1;

只要按上述顺序调用它们,您就可以将它们拆分为单独的文件。

【讨论】:

  • 谢谢@texalate。这可能是一种解决方案。在这个例子中,我无法控制变量的顺序。
【解决方案2】:

由于文件 1 包含文件 2 中使用的 variable,因此文件 1 应该是文件 3 中的 included。所以文件 3 类似于

include ("file1.php");
include ("file2.php");

但是由于变量是相互依赖的,为什么不将它们放在同一个文件中,除非你有某种原因。

注意: var2 将在文件 1 中未定义。所以我的建议是将两个相互依赖的变量放在一个文件中。所以文件 1 类似于

$var2 = ' berry';
$var1 = 'Straw ' . $var2;

然后是文件 2

$var3 = $var1;

然后你include 如上所述。

【讨论】:

  • 两个文件都在使用彼此的变量,所以无论首先包含哪个文件,一个变量都将是未定义的。
  • 谢谢@MagnusEriksson 没有注意到。
  • 非常感谢@Oke Tega。在这种情况下,我无法完全控制变量的顺序。但是,如果可以,我会将您的帖子标记为答案。
  • @camursm 是的,你可以。
【解决方案3】:

非常感谢大家的意见。

可以按照@texelate 和@Oke Tega 的建议进行操作,将变量按正确的顺序排列,然后将它们分配到不同的文件中。

但正如@Magnus Eriksson 指出的那样,这是循环依赖和糟糕的设计,根本无法做到。

【讨论】:

  • 如果@texelate 的解决方案解决了您的问题,请接受该答案,而不是自己编写...
  • 问题是,我无法控制变量的顺序,因此这篇文章。
  • 很高兴我们能提供帮助,但这不是您问题的答案,也不应该作为答案发布。你可以评论这个。如果有帮助,请接受一个答案。
  • 如果你不能控制变量的顺序,那么你真的需要从头开始重构你的代码。
  • 如果您无法控制变量的顺序,请尝试从 Scartch 重构您的代码。如果现在不修复,您的代码将来会花费很多。
猜你喜欢
  • 2014-03-08
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多