ホームページ  >  記事  >  バックエンド開発  >  php参照問題

php参照問題

WBOY
WBOYオリジナル
2016-06-23 13:59:58796ブラウズ

<?php 	$var1 = 1;	$var2 = 2;	function test(){		global $var1, $var2;		$var1 = &$var2;		$var1 = 55;	}	test();	echo $var1.",".$var2;?>

<?php 	$var1 = 1;	$var2 = 2;	$var1 = &$var2;	$var1 = 55;	echo $var1.",".$var2;//结果是55,55?>

global は具体的に何をしましたか? $var1 = &$var2; という文は、$var1 が var2 の内容を指していることを意味しますか?


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

global $var1, $var2;
文字通りの意味: $var1 と $var2 をグローバル変数として宣言します
実際のアクション: 2 つのローカル変数 $var1 と $var2 を作成し、それらを配置しますグローバル変数 $var1 および $var2 への参照として設定されます

<?php     $var1 = 1;    $var2 = 2;    $var1 = &$var2;  // $var1 引用了 $var2,引用的意思是,var1指向了var2的内存地址,因此,修改var1的值,var2的值也会改变.    $var1 = 55;    echo $var1.",".$var2;//结果是55,55?><?php     $var1 = 1;    $var2 = 2;    function test(){        global $var1, $var2; // $var1 与 $var2 引用了全局变量 $var1 与 $var2的值        $var1 = &$var2; // $var1 引用了 $var2的值,执行这句后,$var1与$var2指向的内存地址都是同一个.因为$valr引用$var2后,$var1就不再指向全局变量$var1,而是指向了全局变量$var2        $var1 = 55; // 局部变量 $var1 与全局变量 $var2的值都改为55,    }    test();    echo $var1.",".$var2; // 因为执行$var1=55之前,function 内的$var1已经不是指向全局变量$var1,因此,全局变量$var1的值没有改变,都是1,而全局变量$var2改变了,所以是55?>

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