ホームページ  >  記事  >  バックエンド開発  >  PHPの一部の使い方を詳しく解説 グローバル変数定義_PHPチュートリアル

PHPの一部の使い方を詳しく解説 グローバル変数定義_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:00:21761ブラウズ

PHP のグローバル変数の分析は次のとおりです: Global の役割はグローバル変数を定義することですが、このグローバル変数は Web サイト全体ではなく、現在のページ (include または require 内のすべてのファイルを含む) に適用されます。


概要: 関数本体内で定義された PHP グローバル変数は関数本体外で使用できますが、関数本体外で定義されたグローバル変数は関数本体内では使用できません
コードは次のとおりです コードをコピー

$a = 1; $b = 2; functionSum()
{
global $a, $b; //
内でグローバル変数として宣言されます。 $b = $a + $b; }
合計(); $b をエコーし​​ます。 ?>




結果: 3

グローバル変数globalがないとメソッド内で$aと$bの値を取得できないため、メソッド内で外部変数を使用したい場合は最初にこの変数をグローバル変数として宣言する必要があります、使えるように

$glpbal $a; $a=123; 関数 f() { echo $a; }
次の例を見てください

コードは次のとおりです

コードをコピー

関数 f() グローバル $a $a=123; } ふ(); echo $a; //正しい、使用できます1. ローカル機能からの離脱 //A.php ファイル
{




ユーザー定義関数では、ローカル関数スコープが導入されます。関数内で使用される変数は、デフォルトでローカル関数スコープに制限されます (include および require によってインポートされたファイル内の変数を含む)!
説明: A.php ファイル内の Test_Global は、定義されたサードパーティ関数です。この関数は、B.php ファイル内の $a のグローバル グローバル変数をインポートするために include を使用するため、$a は Test_Global ローカル関数のスコープに制限されます。 B .php ファイル内の $a のスコープは、A.php 全体に影響を与えるのではなく、Test_Global 内にあります...

解決策:



コードは次のとおりです
コードをコピー

関数 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); ?> //B.php ファイル 関数 Set_Global(&$var)

{
$var=1;
}
?>



$GLOBALS[] を見てみましょう

エコー $a;
コードは次のとおりです
コードは次のとおりです コードをコピー


$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(){ テスト1(); var_dump($var1); //NULL$var2 = 1; 関数 test2(){ グローバル $var2 unset($var2); }tru​​e
unset($GLOBALS['var1']); }
テスト2();




echo $var2; //1 $var1 の値は削除されますが、$var2 の値はまだ存在します。これは、$var2 が単なるエイリアス参照であり、その値がまったく変更されていないことを証明しています。つまり、グローバル $var は実際には $var = &$GLOBALS['var'] であり、これは外部変数を呼び出すための単なるエイリアスです。





http://www.bkjia.com/PHPjc/631248.html

www.bkjia.com

http://www.bkjia.com/PHPjc/631248.html

技術記事 PHP のグローバル変数の分析は次のとおりです: Global の役割はグローバル変数を定義することですが、このグローバル変数は Web サイト全体ではなく、include または require 内のすべてのファイルを含む現在のページに適用されます...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。