使用PHP变量从一个包含到另一个

时间:2012-05-28 08:25:32

标签: php

我在页面上有2个包含。让我们说它们是页眉和页脚:

<?php
include('header.php');
include('footer.php');

我需要在标题中使用页脚中的变量。这可能吗?

2 个答案:

答案 0 :(得分:3)

创建另一个include或将var的逻辑放入主脚本中。

答案 1 :(得分:1)

除非有理由不能,否则简单的解决办法就是在inc1中设置inc2中使用的变量。

当脚本包含在任何函数之外时,脚本在全局范围内执行,因此它设置或定义的任何范围都将具有全局范围。如果脚本包含在本地范围内(例如在函数中),则脚本在同一范围内执行,因此它定义的任何内容都是本地的。请注意,包含的脚本可以访问函数的本地变量。

function foo($x) {
    $bar = 'bam';
    include 'script.php'; # script.php can access $x and $bar
}

然而,global variables可能会有问题。更好的方法是将任务分解为单独的模块。大多数模块都是库脚本:它们只定义事物(函数,类)并且不直接执行任何操作。入口点(顶级脚本)没有定义任何内容;相反,它用于连接所有内容并作为计算的起点。这是一个使用数据库连接的简单示例:

<?php
include_once('DB.php');
include_once('header.php');
include_once('footer.php');

$db = DB::connect();
header($db);
footer($db);

虽然技术上$db是一个全局变量(请注意,这只是示例代码,而不是生产代码),但不能在此脚本之外的任何地方访问它。相反,它是根据capabilities的规则传递的(这是为安全目的而设计的,但规则实际上只是好的OOP原则)。