2

私はこのエラーを受け取り続けます:

注意: 未定義の変数: 7 行目の C:\xampp\htdocs\Series\DieOrExit.php の var1

私の構文は正しいですが、$var1 はグローバル変数であり、関数内で $var1 を呼び出しています。php.ini に移動して error_reporting = E_ALL & ~E_NOTICE を設定し、Apache を再起動して通知をオフにしようとしましたが、何も起こりません。この問題を解決する方法について誰かアドバイスはありますか? ありがとう!

これが私のスクリプトです:

<?php

$var1 = "hello";

function x()
{
    echo $var1;
}

x();
?>
4

2 に答える 2

1

関数内の変数にx()はローカルスコープしかないため、これが発生します。

php.net の変数スコープを参照してください。

ほぼ同じ例があります:

<?php 

$a = 1; /* global scope */ 

function test() 
{ 
    echo $a; /* reference to local scope variable */  
} 

test(); 
?>

説明付き:

echo ステートメントは $a 変数のローカル バージョンを参照し、このスコープ内の値が割り当てられていないため、このスクリプトは出力を生成しません。C のグローバル変数は、ローカル定義によって特にオーバーライドされない限り、関数で自動的に使用できるという点で、これは C 言語とは少し異なることに気付くかもしれません。これにより、ユーザーが誤ってグローバル変数を変更する可能性があるという問題が発生する可能性があります。PHP では、グローバル変数を関数内で使用する場合、グローバル変数を関数内で宣言する必要があります。


これを回避するには、次のように変数を関数に渡す必要があります。

<?php

$var1 = "hello";

function x($var2)
{
    echo $var2;
}

x($var1);

?>
于 2013-06-30T23:25:23.877 に答える