我想在我的网站上有一个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中使用的深度变量?
答案 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="") { }