PHP の global と $globals の違いは何ですか?

WBOY
リリース: 2016-06-20 12:43:36
オリジナル
787 人が閲覧しました

最初にコードを貼り付けます。これはグローバルです。

<?php     $var1=5;   $var2=10;function testglobal(){    global $var1,$var2;    $var2=&$var1;        //这里将$var1的地址传给$var2    echo $var1,'---',$var2;}    testglobal();    $var2=20;    echo "第二次输出",$var1,'---',$var2; ?>
ログイン後にコピー

この testglobal を呼び出した後、$var1 に値を割り当て、$var1 と $var2 の値を出力します。結果は
5- --5 2 番目の出力は 20---10
関数内で var1 のアドレスを var2 に割り当てます (関数本体で var1 の値を変更すると、値も変更されることをテストしました)ただし、呼び出し後、var2 に値を代入しても、var1 の値は変更されません。global の後に var1 の値を変更すると、関数の外側の var1 の値に影響します。

これは $globals のコードです。

<?php           $var1=5;    $var2=10;    function test()    {      $GLOBALS['var1'] =&$GLOBALS['var2'];      $GLOBALS['var1'] = 20;        }    test();    $var1=30;    echo $var1,$var2; ?>
ログイン後にコピー
$ globals を使用すると、関数本体の内側でも関数の外側でも var1 と var2 の値が変更されます

質問:
1: グローバル参照です変数を値渡し参照? 変数を参照した後、実際には変数の値を渡すだけです 関数本体を入力してください?しかし、グローバルの var1 の値を変更すると、関数の外の var1 の値にも影響が及ぶのはなぜでしょうか。
2: global と $globals の違いは何ですか?

最初の質問の形式が少し汚いので、アドバイスをお待ちしております。


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

この問題については心配する必要はありませんね。マニュアルには明確な指示があります



global $var1,$var2; //$var1 と $var2 はグローバル変数への参照です
$var2=&$var1; //$Var2 の場合$var1 への参照を割り当てます。これにより、$var2 のグローバル変数 $var2 への参照が切断されます。

この問題については心配する必要はありません。マニュアルには明確な指示があります



global $var1,$var2; //$var1 と $var2 はグローバル変数への参照です
$var2=&$var1; //$ var2 の場合$var1 の参照を割り当てます。これにより、グローバル変数 $var2 への $var2 の参照が切断されます。

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