php = &
$a = 12; $b =& $a; echo $b; // 12 echo "\n"; $b = 23; echo $a; // 23 echo "\n"; $a = 34; echo $b; // 34 echo "\n"; $c = test($b); echo $b; // 134 echo "\n"; echo $a; // 134 echo "\n"; echo $c; // 134 echo "\n"; $a = 342; echo $c; // 134 echo "\n"; echo $b; // 342 echo "\n"; @$b =& test2($b); echo $b; // 442 echo "\n"; $c =& $b; $a = 154; echo $c; // 154 echo "\n"; test3($c); echo $c; // 0 $c 和 $and 绑定一起指向同一个内容,方法内又将 $and 和 $_GET[‘a‘] 绑定,但是test3方法内没有变量 $c ,函数内的操作不在$c影响范围 echo "\n"; $a = 111; function test(&$and) { return $and = $and + 100; } function test2($and) { return $and = $and + 100; } function test3(&$and) { return $and &= $_GET[‘a‘]; // $_GET[‘a‘] = 1 } test(1); // 1是常量 不是变量
= & 将两个变量同时指向一个值,其中任一变量值发生变化,另一个也随之变化。
示例二的test方法中 参数是 &$and 返回传入的参数 $and ,虽然将 test($b) 赋值给 $c,但是$c不是test()的传入参数 ,所以当$b改变时 $c并不会随之变化。test(&$and)的含义就是,将传入参数$and的值
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。