引用是什么
在 php 中引用意味着用不同的名字访问同一个变量内容。这并不像 c 的指针,替代的是,引用是符号表别名。注意在 php 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 unix 文件系统中的 hardlink。
一:变量的引用
代码如下 复制代码
二:函数中引用传值。
代码如下 复制代码
三:对象的引用传值
对象的引用
代码如下 复制代码
class club{
var $name=real madrid;
}
$b=new club;
$c=$b;
echo $b->name;//这里输出real madrid
echo $c->name;//这里输出real madrid
$b->name=ronaldo;
echo $c->name;//这里输出ronaldo
?>
取消引用
当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如:
代码如下 复制代码
不会 unset $b,只是 $a。
例,引用传递
test1.php
代码如下 复制代码
test2.php
代码如下 复制代码
引用返回
引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来增加性能,引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用!要返回引用,使用此语法
代码如下 复制代码
在举一个有意思的例子是在oschina上看到的:
代码如下 复制代码
&$n)
$n = strtoupper($n);
foreach ($a as $k=>$n) // notice no reference here!
echo $nn;
print_r($a);
?>
will result in:
abe
ben
ben
array
(
[0] => abe
[1] => ben
[2] => ben
)
解释: 在第二个foreach中循环如下:
array
(
[0] => abe
[1] => ben
[2] => abe
)
array
(
[0] => abe
[1] => ben
[2] => ben
)
array
(
[0] => abe
[1] => ben
[2] => ben
)
因为没有unset($n),所以它始终指向数组的最后一个元素,第二个foreach里第一次循环把$n,也就是$a[2]改成了abe,第二次循环改成了ben,第三次就也是ben了。
http://www.bkjia.com/phpjc/632667.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/632667.htmltecharticle在php中使用引用赋值只需要在原始对象前加个$b;其实php中的引用就是两个不同名称的变量指向同一个值。 引用是什么 在 php 中引用意味着用...
