1. ホーム
  2. php

[解決済み] phpでグローバル変数を宣言する方法は?

2022-03-05 16:22:08

質問

次のようなコードがあります。

<?
    $a="localhost";
    function body(){
        global $a;
        echo $a;
    }

    function head(){
        global $a;
        echo $a;
    }

    function footer(){
        global $a;
        echo $a;
    }
?>

グローバル変数を一箇所で定義して、その変数を $a を使わずに、一度にすべての関数にアクセスできますか? global $a; もっと?

解決方法は?

その $GLOBALS の配列で代用することができます。

$GLOBALS['a'] = 'localhost';

function body(){

    echo $GLOBALS['a'];
}

から マニュアル :

スクリプトのグローバルスコープで現在定義されているすべての変数への参照を含む連想配列です。変数名は配列のキーとなります。


もし、共通の変数を必要とする一連の関数がある場合、グローバルではなく、プロパティを持つクラスが良い選択となるかもしれません。

class MyTest
{
    protected $a;

    public function __construct($a)
    {
        $this->a = $a;
    }

    public function head()
    {
        echo $this->a;
    }

    public function footer()
    {
        echo $this->a;
    }
}

$a = 'localhost';
$obj = new MyTest($a);