【发布时间】:2016-03-20 06:05:08
【问题描述】:
我有一个由几个不同的 php 文件(页眉、页脚、主文件等)构成的博客。我想创建一个名为 adv.php 的 PHP 文件,其中包含一个需要在所有其他 PHP 文件中检索的 var。我想只在 header.php 中包含 adv.php 文件,并确保 var 在 footer.php、main.php 等中仍然有效。
我尝试过,即使使用全局变量,这似乎也不起作用。我怎样才能解决这个问题?同样,我只想在 header.php 中包含一次 adv.php 文件,而不是在每个 php 文件中。
编辑
这是代码的简化版本,仅包含相关部分:
adv.php
<?php $ad300_top_right_index = "RTB"; ?>
header.php
<?php include_once('adv.php'); ?>
main.php
<?php if ( $ad300_top_right_index == "RTB" ) { ?>
show code here
<?php } else { ?>
show some other code here
<?php } ?>
关于包含:它是一个 Wordpress 模板,其中生成的页面将包含 header.php 和 main.php,而 header.php 包含 adv.php。在我尝试使用 main.php 中的 var 之前,当然会包含 adv.php。
【问题讨论】:
-
您是否在包含包含它的文件后检索 var?
-
include/require 就像被包含文件的内容被剪切并粘贴到
include指令所在的位置一样。就后面的代码而言,包含文件和将其作为主文件本身的一部分没有区别。你只需要知道 PHP 的作用域规则。 -
您是否尝试在其他包含的脚本之一的函数中使用此变量Variable Scope in the manual
-
是的,var 是在 include 之后调用的(这就是我选择在 header 中添加 include 的原因)。
-
@MarcB 但它似乎不起作用...... adv.php 包含在 header.php 中。在 header.php 中调用 var 可以工作,但如果我从另一个文件(例如 footer.php)调用它,它将无法工作。是在需要调用 var 的每个文件中添加包含字符串的唯一解决方案吗?