global &一直没明白是如何个工作原理

WBOY
Freigeben: 2016-06-13 12:52:58
Original
871 Leute haben es durchsucht

global &一直没明白是怎么个工作原理

<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 />
Nach dem Login kopieren

<br />
$var1 = 1;<br />
$var2 = 2;<br />
function test(){<br />
global $var1,$var2;<br />
$var1 = &var2;<br />
}<br />
test();<br />
echo $var1 //1   想不通<br />
Nach dem Login kopieren

<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 />
Nach dem Login kopieren


------解决方案--------------------
楼主的三个函数,均没有传递参数进去。
global的作用就在此。
当你不传参数进去,又要用到这个变量的时候。global一下
------解决方案--------------------
谢谢。请再讲下“&”的作用 $var1 = &var2 究竟如何理解?
------解决方案--------------------
$var1 = 1;
$var2 = 2;
function test(){
global $var1,$var2;
$var1 = &var2;
}
test();
echo $var1 //1   想不通
先给你解释这个: test()函数中的$var1 = &var2; 这个$var1只是函数内的局部变量,它并不属于全局变量。如果在test()中打印$var1会得到结果$var1 = 2;
------解决方案--------------------
$var1 = 1;    
$var2 = 2;    
function test_global()    
{    
    global $var1,$var2;    
    $var1=&$var2;    
    $var1=7;    
}
test_global();    
echo $var1;    
echo $var2;//结果是1和7

我们在来看这个,同理,$var1仍然为局部变量。但是在test()中$var1=&$var2; 这句代码的意思是把$var1的值 指向了$var2的指针所对应的内存地址(记作AA)。这个时候$var1=7,也就是说把AA变为了7。
PHP 的引用,希望能帮助你理解。
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage