在函数的包含文件中使用变量

时间:2012-05-14 11:34:22

标签: php function variables include

我想在我的网站上有一个header.php文件。我目前有以下内容:

的header.php

<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="<?php if(isset($depth)){echo $depth;};?>css/style.css">

的functions.php

function include_layout_template($template="", $depth="")
{
    global $depth;
    include(SITE_ROOT.DS.'public'.DS.'layouts'.DS.$template);
}

的index.php

<?php include_layout_template('header.php', "../"); ?>

但是$ deep深度消失了,我甚至无法回复$ depth;它只是空白。如何获取header.php中使用的深度变量?

2 个答案:

答案 0 :(得分:2)

您必须在函数调用中重命名深度变量

function include_layout_template($template="", $my_depth="")
{
   global $depth;
   //if need $depth = $mydepth

答案 1 :(得分:0)

您的$depth变量正在消失,因为它首先作为参数传递,但随后被定义为使用全局参数。

我将用一个例子来解释:

$global = "../../"; //the variable outside
function include_layout_template($template="", $depth="")
{
    global $depth; //This will NEVER be the parameter passed to the function
    include(SITE_ROOT.DS.'public'.DS.'layouts'.DS.$template);
}
include_layout_template("header.php", "../");

要解决,只需修改深度本身以外的函数参数。

function include_layout_template($template="", $cDepth="") { }