グローバルですが、まだ仕組みがわかりません
<br />
$var1 = 1;<br />
$var2 = 2;<br />
function test(){<br />
global $var1,$var2; // <br />
$var1 = 3;//$var1 重新赋值 又没有return<br />
}<br />
test();<br />
echo $var1; //为什么是3<br />
ログイン後にコピー
<br />
$var1 = 1;<br />
$var2 = 2;<br />
function test(){<br />
global $var1,$var2;<br />
$var1 = &var2;<br />
}<br />
test();<br />
echo $var1 //1 想不通<br />
ログイン後にコピー
<br />
$var1 = 1; <br />
$var2 = 2; <br />
function test_global() <br />
{ <br />
global $var1,$var2; <br />
$var1=&$var2; <br />
$var1=7; <br />
}<br />
test_global(); <br />
echo $var1; <br />
echo $var2;//结果是1和7<br />
ログイン後にコピー
-----解決策--------------------------------
元の投稿者の 3 つの関数はすべてパラメータが渡されません。
それがグローバルの役割です。
パラメーターを渡さず、この変数を使用する必要がある場合。グローバル
------ソリューション--------------------------------
ありがとうございます。 「&」の関数を説明してください。 $var1 = &var2 を理解するにはどうすればよいですか?
------解決策---------
$var1 = 1;
$var2 = 2;
関数テスト(){
グローバル $var1,$var2;
$var1 = &var2;
}
テスト();
echo $var1 //1 分かりません
まずこれについて説明します: test() 関数内の $var1 = &var2; この $var1 は関数内のローカル変数にすぎません。 test() で $var1 を出力すると、結果は $var1 = 2;
------解決策------ -- -
$var1 = 1;
$var2 = 2;
関数 test_global()
{
グローバル $var1,$var2
$var1=&$var2;
$var1=7;
}
テストグローバル();
エコー $var1;
echo $var2;//結果は 1 と 7
同様に、$var1 もローカル変数であることに注目します。しかし、test() のコード $var1=&$var2; は、$var1 の値を $var2 のポインタに対応するメモリ アドレス (AA と表記) に指すことを意味します。このとき $var1=7 は、AA が 7 に変更されることを意味します。
PHP のリファレンスです。理解のお役に立てれば幸いです。