私はこれがうまくいくことを知っています。functions.php
では、次のことを行います。
$variable = "value";
そしてheader.php
で使用する:
global $variable;
echo $variable;
テンプレートページでグローバル変数を設定したり、phpファイルをインクルードすることは可能ですか?
スクリプトのどこでも、以下のようにグローバル変数を定義できます。
スーパーグローバル$GLOBALS
配列を使う。この配列はPHPによって事前定義されており、 はすべてのスコープで使用できます。
これは連想配列で、すべてのグローバル変数をキーと値のペアとして含みます。つまり、キーは変数名になり、値は変数の値になります。
$GLOBALS['variablename'] = 'variablevalue';
そしてそれは次のようにアクセスすることができます。
$variable = $GLOBALS['variablename'];
または
global $variable;
もっと知るためにref: PHP Variable Scope
編集: 答えているうちに私はユーザーが方法2について知っていると仮定しましたが、読み直すとそれは多分彼がそれに気付いていないようなので、以下で言及しています。
方法2:
'global'キーワードを使ってグローバル変数を定義することもできます。例:
//file1.php
class testScope()
{
function setMsg($msg = 'Hi')
{
//the variable need not be already defined in the global scope.
global $say;
$say = 'Hi';
}
function say()
{
global $say;
echo $say;
}
}
//file2.php
function getFile1()
{
include('file1.php');
}
getFile1();
$sayer = new testScope();
$sayer->setMsg(); // this will create a new global variable.
$sayer->say();
global $say;
echo $say;
$say = "I changed it in global scope";
$sayer->say(); // 'I changed it in global scope'
$sayer->set('i changed it inside class');
echo $say; // ' i changed it inside class'
注:コードはテストされていません