web-dev-qa-db-ja.com

テンプレートページでグローバル変数を設定する方法

私はこれがうまくいくことを知っています。
functions.phpでは、次のことを行います。

$variable = "value";

そしてheader.phpで使用する:

global $variable;
echo $variable;

テンプレートページでグローバル変数を設定したり、phpファイルをインクルードすることは可能ですか?

2
Jows

スクリプトのどこでも、以下のようにグローバル変数を定義できます。

スーパーグローバル$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'

注:コードはテストされていません

7
MortalViews