ホームページ >バックエンド開発 >PHPチュートリアル >PHP Global を使用してグローバル変数を定義する手順_PHP チュートリアル

PHP Global を使用してグローバル変数を定義する手順_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:59:141221ブラウズ

PHP の変数スコープに慣れていません。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); //出力 123 関数 abc(){
global $test;
$test = 123;
}
abc();
echo($test);

//出力 123 このようにして、関数内で定義した変数に外部からアクセスできるようになります
ユーザー定義関数では、ローカル関数スコープが導入されます。関数内で使用される変数は、デフォルトでローカル関数のスコープに制限されます (include および require によってインポートされたファイル内の変数を含む)。
説明: A.php ファイル内の Test_Global は、定義されたサードパーティ関数です。 $a のグローバル変数を B.php ファイルにインポートするため、$a は Test_Global ローカル関数のスコープに制限されるため、B.php ファイル内の $a のスコープは Test_Global 内にあり、全体には影響しません。 A.php...
解決策:
1. ローカル関数を展開します
//A.php ファイル
コードをコピーします コードは次のとおりです:

function Test_Global( )
{
Test();
}
include 'B.php' // ローカルの Test_Global 関数からインクルードを移動
$a = 0 ;
Test_Global();
echo $a;
?> B.php ファイル
function Test()
{
global $a;
$a =1;
}
?>

2. 優れたアクセサー

コードをコピーしますは次のとおりです:
//A.php ファイル
include 'B.php';
$a =0;
Set_Global($a);
echo $a;
?> / B.php ファイル
function Set_Global(&$var)
{
$var=1;
}
?>


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

tru​​ehttp://www.bkjia.com/PHPjc/328173.html技術記事 PHP の変数スコープに慣れていません。PHP では、関数変数とグローバル世界は完全に分離されており、相互にアクセスできません。 たとえば、次のようになります。 コードをコピーします。 コードは次のとおりです。 $test = 123; a...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。