什么是php的参数传地址的方式?&

justdooracle 2004-04-07 11:47:01
参数的值,通常使用传值的方式输入,有时在特别的需求时,可以使用传址的方式,传入参数的指标。方法就是在参数的前面加上 & 符号即可。如下例

<?php
function myfunc2(&$argstr) {
$argstr=ereg_replace("/", "-", $argstr);
}

$today="2000/01/01";
myfunc2($today);
echo $today; // 2000-01-01;
?>

我的理解是将参数的地址传递过来,在函数内部修改的过程中,参数本身的值也发生变化。

...全文
303 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
52juanjuan 2004-04-07
有点跟c里面的指针差不多,php中的地址的地址也与C中的指针的指针有点类同
回复
xuzuning 2004-04-07
楼主的理解是正确的
回复
lhzyn 2004-04-07
通过引用传递参数
缺省情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它 并不会改变函数外部的值)。如果你希望允许函数修改它的参数值,你必须 通过引用传递参数。

如果想要函数的一个参数总是通过引用传递,你可以在函数定义中该参数的 前面预先加上符号(&):
<?php
function add_some_extra(&$string)
{
$string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str; // outputs 'This is a string, and something extra.'
?>
回复
shuzai 2004-04-07
我感觉用这个如果思路不好就容易产生出错了
上面的代码看起来是
$today="2000/01/01";
$today=ereg_replace("/", "-", $today);
echo $today; // 2000-01-01;

myfunc2是个没有renturn却有返回值的函数

:P ,给我可以不用就尽量不要了.
回复
mistjin 2004-04-07
楼主理解没错啊!给我们送分啊!^_^
回复
Kingdyjz 2004-04-07
那是,java和php都是由C衍生的嘛~~
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告