ホームページ  >  記事  >  バックエンド開発  >  関数内のグローバル変数に関する問題

関数内のグローバル変数に関する問題

WBOY
WBOYオリジナル
2016-06-23 14:00:23965ブラウズ

関数を使用しない場合のコードは次のとおりです:

$lists = array();for( $i = 0; $i < 5 ; $i++ ){	$lists[] = $i;}echo json_encode($lists);


実行結果は次のとおりです:
[0,1,2,3,4]

この関数を関数の中に入れたいのですが、コードは以下の通り:
$lists = array();function testarray(){	for( $i = 0; $i < 5 ; $i++ )	{		$lists[] = $i;	}}testarray();echo json_encode($lists);


しかし、結果は次のようになりました:
[]

いったい何が起こっているのでしょうか?アドバイスをお願いします、ありがとうございます。


ディスカッションへの返信 (解決策)

関数内で変数を直接使用しても、自動的にグローバル スコープが設定されるわけではなく、明示的に Global を宣言する必要があります。
$lists = array();
function testarray()
{
global $lists;
for( $i < 5 ; $i++ )
{ $lists[] = $i ;
}
}
testarray();


グローバル変数の使用による混乱を避けるためにパラメータを渡すこともできます。

global を使用してグローバル変数を呼び出すこともできますが、これはお勧めしません。
パラメータを渡す方が良いでしょう。

れー

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