类的成员函数中,加上&的是什么意思? 函数前加 & 表示该函数返回的是引用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 引用做什么PHP 的引用允许你用两个变量来指向同一个内容。意思是,当你这样做时: <?php$a =& $b?> 这意味着 $a 和 $b 指向了同一个变量。 注: $a 和 $b 在这里是完全相同的,这并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一个地方。 同样的语法可以用在函数中,它返回引用,以及用在 new 运算符中(PHP 4.0.4 以及以后版本): <?php$bar =& new fooclass();$foo =& find_var ($bar);?> 注: 不用 & 运算符导致对象生成了一个拷贝。如果你在类中用 $this,它将作用于该类当前的实例。没有用 & 的赋值将拷贝这个实例(例如对象)并且 $this 将作用于这个拷贝上,这并不总是想要的结果。由于性能和内存消耗的问题,通常你只想工作在一个实例上面。 尽管你可以用 @ 运算符来关闭构造函数中的任何错误信息,例如用 @new,但用 &new 语句时这不起效果。这是 Zend 引擎的一个限制并且会导致一个解析错误。 引用做的第二件事是用引用传递变量。这是通过在函数内建立一个本地变量并且该变量在呼叫范围内引用了同一个内容来实现的。例如: <?phpfunction foo (&$var){ $var++;}$a=5;foo ($a);?> 将使 $a 变成 6。这是因为在 foo 函数中变量 $var 指向了和 $a 指向的同一个内容。更多详细解释见引用传递。 引用做的第三件事是引用返回。 嗯。楼上们一说我想起来了,&是指向内存地址的。但是想不到php也这样用。呵呵。楼上的楼上那个例子让我明白了,$a的值的确会变。但是想不明为什么在类里面放在成员函数前面有什么用。看来还需要详细了解类。呵呵。 http://www.phpe.net/articles/389.shtml中的中间的getposition函数,就是用了引用。 在一个对象的方法中,$this 永远是调用它的对象的引用 给你一个例子你应该就可以明白了<?phpfunction myfunc2(&$argstr) { $argstr=ereg_replace("/", "-", $argstr);}$today="2000/01/01";myfunc2($today);echo $today; // 2000-01-01;?> 关于表单提交的问题:请大家帮忙看看这个文件有什么问题? PHP二进制读取文件的问题 打家看看。。有没得 逻辑错误。。 大家一般是按什么方法给网站报价的? 关于MAIL函数...... 50当10 你有没有做过? $now = new DateTime;出错,奇怪了。 php WEBSOCKET问题 求教移动应用API设计例子? 网站首页轮播图不动,点击下方按钮也不换图片 PHP连MSSQL的问题 新手提问:多窗口页面frames中的数据传递问题
PHP 的引用允许你用两个变量来指向同一个内容。意思是,当你这样做时:
<?php
$a =& $b
?>
这意味着 $a 和 $b 指向了同一个变量。
注: $a 和 $b 在这里是完全相同的,这并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一个地方。
同样的语法可以用在函数中,它返回引用,以及用在 new 运算符中(PHP 4.0.4 以及以后版本):
<?php
$bar =& new fooclass();
$foo =& find_var ($bar);
?> 注: 不用 & 运算符导致对象生成了一个拷贝。如果你在类中用 $this,它将作用于该类当前的实例。没有用 & 的赋值将拷贝这个实例(例如对象)并且 $this 将作用于这个拷贝上,这并不总是想要的结果。由于性能和内存消耗的问题,通常你只想工作在一个实例上面。 尽管你可以用 @ 运算符来关闭构造函数中的任何错误信息,例如用 @new,但用 &new 语句时这不起效果。这是 Zend 引擎的一个限制并且会导致一个解析错误。 引用做的第二件事是用引用传递变量。这是通过在函数内建立一个本地变量并且该变量在呼叫范围内引用了同一个内容来实现的。例如:
<?php
function foo (&$var)
{
$var++;
}$a=5;
foo ($a);
?>
将使 $a 变成 6。这是因为在 foo 函数中变量 $var 指向了和 $a 指向的同一个内容。更多详细解释见引用传递。 引用做的第三件事是引用返回。
看来还需要详细了解类。呵呵。
中的中间的getposition函数,就是用了引用。
<?php
function myfunc2(&$argstr) {
$argstr=ereg_replace("/", "-", $argstr);
}$today="2000/01/01";
myfunc2($today);
echo $today; // 2000-01-01;
?>