欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php引用(&)

程序员文章站 2022-04-12 18:28:10
...
##### php引用php引用允许两个变量指向同一个内容``````如果对一个未定义的变量进行引用赋值,引用穿参,则会自动创建该变量```function foo(&$var){}foo($a);var_dump($a);//输出null $b = array();foo($b['b']);var_dump(array_key_exists('b',$b));//bool true$c = new stdClass();foo($c->d);var_dump(property_exists($c,'d'));//bool true```如果在一个函数内部给一个声明为global变量赋予一个引用,该引用只在函数内部可见,可以通过使用$GLOBALS数组避免```$var1 = "example variable";$var2 = "";function global_references($use_globals){    global $var1,$var2;    if(!$use_globals){        $var2  =& $var1;    }else{        $GLOBALS["var2"] =& $var1;    }}global_references(false);echo "var2 is set to $var2"."";//"var2 is set to "global_references(true);echo "var2 is set to $var2"."";//"var2 is set to example variable"```取消引用当`unset`一个引用,只是断开了变量名和变量内容之间的绑定,并不代表变量的内容被销毁了``````函数的引用传递```function test(&$a){$a = $a +100;}$b = 1;echo $b;	//输出1test($b);//这里$b传递给函数的其实是$b变量内容所处的内存地址,通过函数里改变$a的值就可以改变$b的值了echo $b;```函数的引用返回``````引用结构出现在面向对象中```class fucker{    private $data = 'hi';    public function &get(){        return $this->data;    }    public function out(){        echo $this->data;    }}$q = new fucker();$d = & $q->get();$q->out();$d = 'fuck';$q->out();$d = 'u';$q->out();$d = 'sir';$q->out();//hifuckusir```
相关标签: php引用(&)