php的global

xiaoxiao2021-02-28  36

global声明变量就是对外部变量的同名引用,变量本身的作用范围仍然在函数体内。改变这些变量的值,外部的同名变量自然也改变。

<?php  $var1 = 1;    $var2 =[1,2];    function test_global()    {        global $var1,$var2;        $var1=&$var2;      print_r($var1);    $var1=7;    // echo $var1."\n";    // $var2=3; }test_global();    print_r($var1);print_r($var2);

 ?>

输出的结果:1和7.

原因:因为global 引用了外部的$var1  然后内部引用发生变化变成引用$var2  而外部的$var1并没有被赋值。更通顺可以用指针来理解,在方法test_global方法中$var1指针指向&$var2这时$var1和$var2是相同的一个对象,那为什么外部没有$var1没有变那是因为作用域的问题。

转载请注明原文地址: https://www.6miu.com/read-2632776.html

最新回复(0)