PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPの$GLOBALSとは?グローバル変数にアクセスする方法を解説

はじめに

$GLOBALSは、PHPにあらかじめ定義されているスーパーグローバル変数の一つで、グローバルスコープで定義されたすべての変数への参照を格納する連想配列です。配列のキーには変数名が、値にはその変数の内容が格納されます。

$GLOBALSは関数やメソッドの中からでも直接アクセスできるため、globalキーワードを使わずにグローバル変数を参照・操作したい場合に便利です。

$GLOBALSの基本構造

$GLOBALS配列には、スクリプト全体で定義されたグローバル変数の「変数名」と「その内容」が次のような形で格納されています。

  • キー: 変数名(例: var1)
  • 値: 変数に代入された内容

$GLOBALSの使用例

次の例では、$GLOBALS配列を使ってグローバル変数の名前と内容を取得しています。

コード例

<?php
$var1="Hello";
$var2=100;
$var3=array(1,2,3);
echo $GLOBALS["var1"] . "\n";
echo $GLOBALS["var2"] . "\n";
echo implode($GLOBALS["var3"]) . "\n";
?>

出力結果

このコードを実行すると、以下の結果が出力されます。

Hello
100
123

ローカル変数との違いを確認する例

次の例では、$var1がグローバルスコープでも定義され、同時にmyfunction()関数内ではローカル変数としても定義されています。関数内で$GLOBALS配列から取り出されるのはグローバル変数の方である点に注目してください。

コード例

<?php
function myfunction(){
    $var1="Hello PHP";
    echo "var1 in global namespace:" . $GLOBALS['var1']. "\n";
    echo "var1 as local variable :". $var1;
}
$var1="Hello World";
myfunction();
?>

出力結果

このコードを実行すると、以下の結果が出力されます。

var1 in global namespace:Hello World
var1 as local variable :Hello PHP

まとめ

$GLOBALSを使うことで、関数内部からglobalキーワードを宣言することなく、グローバル変数へアクセスできます。同じ名前のローカル変数が存在する場合でも、$GLOBALS経由でアクセスすれば確実にグローバル変数を参照できるため、スコープの違いによるバグを防ぐのに役立ちます。ただし、乱用するとコードの可読性や保守性が低下するため、必要な場面でのみ使うことが推奨されます。

  1. PHPのpi()関数とは?使い方と定義済み定数との対応を実例付きで解説

    pi()関数の定義と使い方PHPのpi()関数は、数学定数π(円周率)の値を返す関数です。戻り値はfloat型の「3.14159265359」であり、PHPにあらかじめ定義されている定数M_PIとまったく同じ値になります。構文pi ( void ) : floatパラメータこの関数は引数を受け取りません。引数なしでそのまま呼び出すことができます。戻り値pi()関数は数学定数πの値を返し、定義済みの数学定数M_PIと等価です。数式の中では、M_PIの代わりにpi()関数を使うこともできます。対応するPHPバージョンこの関数はPHP 4.x、PHP 5.x、PHP 7.xのすべてのバージョンで利用

  2. 【PHP入門】preg_replaceで句読点・不要な記号を削除する方法

    PHPで文字列から句読点や不要な記号を削除したい場合は、preg_replace関数と正規表現を組み合わせるのが最も一般的です。「残したい文字」以外をすべて空白に置き換えることで、句読点をまとめて取り除けます。ここでは、目的別に3つのパターンを紹介します。 1. 英字と数字だけを残す方法 英字と数字以外のすべての文字(カンマ、ピリオド、記号など)を半角スペースに置き換える例です。 <?php $s = "Hello, my name is Bobby !? I am 8 years !"; print_r( preg_replace('/[^a-z0-9]+/