ホームページ >バックエンド開発 >PHPチュートリアル >PHP基本メモ関数グローバル変数_PHPチュートリアル

PHP基本メモ関数グローバル変数_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:50:271015ブラウズ

global は PHP のグローバル変数です。このグローバルは、関数の外にある変数の場合、関数内で直接グローバル宣言を使用して変数の値を取得できます。

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

$a=12;


関数 fn()
{
global $a;//外部の $a 変数を使用します。このメソッドは使用しません $a はローカル変数です
$a+=12;
}

echo '$a='.$a//結果を出力

?>

出力結果: $a=24


概要: 関数本体内で定義されたグローバル変数は関数本体外で使用できますが、関数本体外で定義されたグローバル変数は関数本体内で使用できません

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

$glpbal $a;
$a=123;

関数 f()
{
echo $a; //エラー、
}

//次の例を見てください

関数 f()
{
グローバル $a;
$a=123;
}

f();
echo $a; //正しい、使用できます

上記の例はグローバル変数の基本的な知識にすぎません。より複雑な変数を見てみましょう。

コードは次のとおりですコードをコピー
//A.php ファイル

関数 Test_Global()
{
「B.php」を含めます;
テスト();
}

$a = 0 ;

Test_Global();
エコー $a;
?>

//B.php ファイル

関数 Test()
{
global $a;//関数本体で使用する $a 変数を宣言 Sum をグローバルグローバル変数として宣言します
$a =1;
}
?>

出力が 0 になるのはなぜですか?!!

ユーザー定義関数では、ローカル関数スコープが導入されます。関数内で使用される変数は、デフォルトでローカル関数スコープに制限されます (include および require によってインポートされたファイル内の変数を含む)!

説明: A.php ファイルの Test_Global は定義されたサードパーティ関数です。この関数は include を使用して B.php ファイルの $a のグローバル グローバル変数をインポートするため、$a は Test_Global ローカル関数のスコープに制限されます。 B .php ファイル内の $a のスコープは、A.php 全体に影響を与えるのではなく、Test_Global 内にあります...

解決策:

1. ローカル機能からの離脱

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

グローバル問題分析:

質問: config.inc.php でいくつかの変数 ($a) を定義し、他のファイルの関数の外側に ("config.inc.php") を含めました。これらの変数 $a がある場合は、関数内で使用する必要があります。宣言がない場合、echo $a は何も出力できません。そこで、global $a を宣言しますが、関数も変数もたくさんありますので、このように繰り返し宣言することはできませんよね。何か良い解決策があればアドバイスをお願いします。
答え1: まずconfig.inc.phpで定数を定義します:define(定数名, 定数値)
次に、使用する必要がある他の場所で「config.inc.php」を要求します。
その後、この定数をこのファイル内で直接使用できます。
回答 2: $x[a]、$x などの配列を定義して、グローバル $x を宣言するだけで済むようにする方法もあります。
回答 3: あなたの方法を試しましたが、うまくいきませんでした。
回答 4: php.ini ファイルを変更します。

//A.php ファイル

関数 Test_Global()
{
テスト();
}
include 'B.php' // ローカルの Test_Global 関数からインクルードを移動します
$a = 0 ;
Test_Global();
エコー $a;
?>

//B.php ファイル

関数 Test()
{
グローバル $a;
$a =1;
}
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632627.html技術記事 Global は PHP のグローバル変数です。このグローバルは、関数の外にある変数の場合、関数内で直接グローバル宣言を使用して変数の値を取得できます。 例...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。