PHP のグローバル変数の分析は次のとおりです: Global の役割はグローバル変数を定義することですが、このグローバル変数は Web サイト全体ではなく、現在のページ (include または require 内のすべてのファイルを含む) に適用されます。
例
コードは次のとおりです |
コードをコピー |
$a = 1;
$b = 2;
functionSum()
{
global $a, $b; // 内でグローバル変数として宣言されます。
$b = $a + $b;
}
合計();
$b をエコーします。
?>
結果: 3
グローバル変数globalがないとメソッド内で$aと$bの値を取得できないため、メソッド内で外部変数を使用したい場合は最初にこの変数をグローバル変数として宣言する必要があります、使えるように |
概要: 関数本体内で定義された PHP グローバル変数は関数本体外で使用できますが、関数本体外で定義されたグローバル変数は関数本体内では使用できません
$glpbal $a; $a=123; 関数 f() { echo $a; }
次の例を見てください
コードは次のとおりです
コードをコピー
| 関数 f()
{ |
グローバル $a
$a=123;
}
ふ();
echo $a; //正しい、使用できます
ユーザー定義関数では、ローカル関数スコープが導入されます。関数内で使用される変数は、デフォルトでローカル関数スコープに制限されます (include および require によってインポートされたファイル内の変数を含む)!
説明: A.php ファイル内の Test_Global は、定義されたサードパーティ関数です。この関数は、B.php ファイル内の $a のグローバル グローバル変数をインポートするために include を使用するため、$a は Test_Global ローカル関数のスコープに制限されます。 B .php ファイル内の $a のスコープは、A.php 全体に影響を与えるのではなく、Test_Global 内にあります...
解決策:
| 1. ローカル機能からの離脱
//A.php ファイル
コードは次のとおりです
コードをコピー
関数 Test_Global()
{
テスト();
} |
include 'B.php' // ローカルの Test_Global 関数からインクルードを移動します
$a = 0 ;
Test_Global();
エコー $a;
?>
//B.php ファイル
関数 Test()
{
グローバル $a;
$a =1;
}
?>
2. 優れたアクセサー
コードは次のとおりです
| コードをコピー
//A.php ファイル
「B.php」を含めます。
$a =0;
Set_Global($a);
エコー $a; |
?>
//B.php ファイル
関数 Set_Global(&$var)
{
$var=1;
}
?>
$GLOBALS[] を見てみましょう
コードは次のとおりです |
コードをコピー |
$var1 = 1;
$var2 = 2;
関数 test1(){
$GLOBALS['var2'] = &$GLOBALS['var1'];
}
テスト1();
エコー $var2 //1
$var3 = 1;
$var4 = 2;
関数 test2(){
グローバル $var3,$var4
$var4 = &$var3;
}
テスト2();
$var4 をエコーします。
//2 $var2 の印刷結果が 1 であるのに、$var4 の印刷結果は 2 であるのはなぜですか?実際には、$var3 の参照が $var4 の参照アドレスを指しているためです。 $var4 の実際の値は変更されていません。公式の説明は次のとおりです。 $GLOBALS['var'] は外部グローバル変数そのものであり、グローバル $var は外部 $var の同じ名前の参照またはポインタです。
この例はまだあまり明確ではないかもしれません。別の例を紹介しましょう:
| コードは次のとおりです
コードをコピー
$var1 = 1;
関数 test1(){
unset($GLOBALS['var1']);
} |
テスト1();
var_dump($var1); //NULL
| $var2 = 1;
関数 test2(){
グローバル $var2
unset($var2);
}
テスト2();
echo $var2; //1 $var1 の値は削除されますが、$var2 の値はまだ存在します。これは、$var2 が単なるエイリアス参照であり、その値がまったく変更されていないことを証明しています。つまり、グローバル $var は実際には $var = &$GLOBALS['var'] であり、これは外部変数を呼び出すための単なるエイリアスです。
http://www.bkjia.com/PHPjc/631248.html
www.bkjia.com
| true
http://www.bkjia.com/PHPjc/631248.html技術記事
PHP のグローバル変数の分析は次のとおりです: Global の役割はグローバル変数を定義することですが、このグローバル変数は Web サイト全体ではなく、include または require 内のすべてのファイルを含む現在のページに適用されます...