【问题标题】:PHP variable scope between various template files各种模板文件之间的 PHP 变量范围
【发布时间】:2012-06-24 16:29:12
【问题描述】:

这是一个新手问题,我知道。

模板结构是你常用的 index.php,带有一些用于页眉/页脚等的 require_once()。

我在 index.php 的顶部定义了一个 var,位于基本 url 的任何 require_once() 之前,例如 $url = 'http://url';

然后我想将它回显到所有模板文件、页眉/索引/页脚等中,它按预期在 index.php 中工作,但在包含的所有模板文件中失败并出现未定义的 var。

我知道这是一个 var 范围问题,但我完全不知道如何解决它。

我知道手册说 vars 可用于包含的文件,但它们不是。这可能是我本地 PHP 安装的问题吗?

编辑:创建了几个测试文件,并且在 2 个文件之间定义了一个 var,那么为什么它们不能在我的主站点文件上工作?

优雅地接受任何帮助。

非常感谢

【问题讨论】:

  • 您需要向我们展示您是如何调用模板的。如果$url= 声明和include() 语句之间有辅助函数,则输入一个新范围。
  • 我只是用基本的 include($var.'header.php') 将它简化到最低限度,然后尝试在 header.php 的第 1 行回显 $var 并且它仍然回来运行时未定义。真的很奇怪。
  • 解决方案在这里drupal.org/node/84410
  • 这意味着你的描述是谎言。您没有包含文件,而是在加载远程资源。

标签: php templates variables scope


【解决方案1】:

如果你使用函数或方法(类中的函数),那么你需要在函数内部做global $variable。否则您将无法访问它,您也可以将其定义为常量。常量始终是全局的。

define('MYURL', $url);

如果您还没有这样做,您可能想要使用 PHP 框架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-25
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多