ホームページ > バックエンド開発 > PHPチュートリアル > 関数内のグローバル変数に関する問題

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

WBOY
リリース: 2016-06-23 14:00:23
オリジナル
982 人が閲覧しました

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

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

れー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート