0

サイト全体に header.php ファイルを配置したいと考えています。私は現在、次のものを持っています:

header.php

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

関数.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', "../"); ?>

しかし、$depth は消えます。$depth をエコーすることさえできません。ただ空白です。header.php で使用する深度変数を取得するにはどうすればよいですか?

4

2 に答える 2

2

関数呼び出しで深度変数の名前を変更する必要があります

function include_layout_template($template="", $my_depth="")
{
   global $depth;
   //if need $depth = $mydepth
于 2012-05-14T11:38:36.577 に答える
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="") { }
于 2012-05-14T11:45:10.543 に答える