Global は PHP の特別なコマンドです。皆さんはそれをスーパーグローバル変数と呼んでいます。今日は Global を使用してグローバル学習ノートを定義していることを紹介します
私は PHP の関数変数と変数スコープに慣れていません。グローバルな世界は完全に隔離されており、相互にアクセスすることはできません。
例:
コードは次のとおりです:
$test = 123; abc(); //这里什么都不输出,因为访问不到$test变量 function abc(){ echo($test); }$test = 123; abc(); //这里什么都不输出,因为访问不到$test变量 function abc(){ echo($test); }
関数内の外部変数にアクセスしたい場合は、これを行う必要があります:
コードは次のとおりです:
$test = 123; abc(); //输出123 function abc(){ global $test; echo($test); }$test = 123; abc(); //输出123 function abc(){ global $test; echo($test); }
しかし、次のように定義するとどうなるでしょうか。次のような関数内のグローバル変数:
コードは次のとおりです:
function abc(){ global $test; $test = 123; } abc(); echo($test); //输出123function abc(){ global $test; $test = 123; } abc(); echo($test);
//Output 123
このようにして、関数内で定義された変数に外部からアクセスできます
ユーザー内で custom function では、ローカル関数のスコープが「はじめに」になります。関数内で使用される変数は、デフォルトでローカル関数スコープに制限されます (include および require によってインポートされたファイル内の変数を含む)!
説明: Test_Global は A.php ファイルで定義されていますサードパーティ関数、これは関数は include を使用して $a のグローバル変数を B.php ファイルにインポートします。そのため、$a は Test_Global ローカル関数のスコープに限定されます。そのため、B.php ファイル内の $a のスコープは、代わりに Test_Global 内部にあります。 A.php 全体に影響を与える...
解決策:
1. ローカル関数を取り出します
//A.php ファイル
コードは次のとおりです:
<?php function Test_Global() { Test(); } include 'B.php'; //将include 从局部Test_Global函数中移出 $a = 0 ; Test_Global(); echo $a; ?> //B.php 文件 <?php function Test() { global $a; $a =1; } ?>
2. 優れたアクセサー
コード:
//A.php ファイル
<?php include 'B.php'; $a =0; Set_Global($a); echo $a; ?> //B.php 文件 <?php function Set_Global(&$var) { $var=1; } ?>
以上がPHPでグローバル変数を定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。