博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php引用(&)
阅读量:6308 次
发布时间:2019-06-22

本文共 1215 字,大约阅读时间需要 4 分钟。

  hot3.png

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

转载于:https://my.oschina.net/kakoi/blog/661440

你可能感兴趣的文章
Gartner:CIO们最应该消除的八个大数据神话
查看>>
FOSCommentBundle功能包:改变样式
查看>>
JavaGUI基本概念
查看>>
linux mknod命令与磁盘对应一例
查看>>
你的问题不是自卑,而是….
查看>>
Mysql数据库学习笔记
查看>>
虚机redhat linux的紧急救援
查看>>
SecurityStarfish:一个安全威胁情报服务的公司
查看>>
Exchange 2016共享邮箱不保存已发送邮件的问题
查看>>
POJ 1739 Tony's Tour(插头DP)
查看>>
android:taskAffinity与android:finishOnTaskLaunch之我见
查看>>
对Linux 下 SIGUSR1 与 SIGUSR2 的理解
查看>>
如何破解mysql数据库的密码
查看>>
mysql show操作
查看>>
EaglePHP v2.2 更新日志
查看>>
jquery table 操作
查看>>
hibernate 实例
查看>>
.NET深入解析LINQ框架(四:IQueryable、IQueryProvider接口详解)
查看>>
linux Shell学习笔记第二天
查看>>
Python virtualenv
查看>>