次のようなコードがあります:
<?
$a="localhost";
function body(){
global $a;
echo $a;
}
function head(){
global $a;
echo $a;
}
function footer(){
global $a;
echo $a;
}
?>
$a
グローバル変数を 1 か所で定義し、その変数をすべての関数で一度にアクセスできるようにする方法はありますか?global $a;
それ以上使用せずに?
ベストアンサー1
の$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);