您好,欢迎访问一九零五行业门户网

为您详解PHP开发工具的使用与分析

有一段时间一直迷惑于php中引用的传递,后来查手册及c源程序,并反复测试,大致对引用传递在内存中的模式有了一定的了解,后来为了加深印象,写了个总结,应该不会有大的问题——当然这是在php4中,在以后的版本中可能会有变化。当时写总结的时候,想锻炼一下英语,因此就凑合了一篇。不过本人英语不好,也懒得翻译,反正当时想自己看得懂就行了。今天心血来潮,突然觉得还蛮有用的,于是在这里现丑了,请大家指正。那位看得懂的帮忙翻译一下吧,我没空了。
var =& $arg; 
}
function passbyref(&$arg){ 
$this->var = $arg; 
}
function setbyval($arg){ 
$this->var = $arg; 
}
function &getbyref(){ 
return $this->var; 
}
function getbyval(){ 
return $this->var; 

}
$o = new getsettest;
println(============ setbyref getbyref =============); 
println(-----------------before change----------------); 
$in = before change; 
$o->setbyref($in); 
$outbyval = $o->getbyref(); 
$outbyref =& $o->getbyref(); 
println(\$in: .$in); 
println(\$outbyval: .$outbyval); 
println(\$outbyref: .$outbyref); 
println(\$this->var: .$o->var); 
println(-----------------after change-----------------); 
$in = after change; 
println(\$in: .$in); 
println(\$outbyval: .$outbyval); 
println(\$outbyref: .$outbyref); 
println(\$this->var: .$o->var); 
println();
println(============ setbyref getbyval =============); 
println(-----------------before change----------------); 
$in = before change; 
$o->setbyref($in); 
$outbyval = $o->getbyval(); 
$outbyref =& $o->getbyval(); 
println(\$in: .$in); 
println(\$outbyval: .$outbyval); 
println(\$outbyref: .$outbyref); 
println(\$this->var: .$o->var); 
println(-----------------after change-----------------); 
$in = after change; 
println(\$in: .$in); 
println(\$outbyval: .$outbyval); 
println(\$outbyref: .$outbyref); 
println(\$this->var: .$o->var); 
println();
println(============ passbyref getbyval =============); 
println(-----------------before change----------------); 
$in = before change; 
$o->passbyref($in); 
$outbyval = $o->getbyval(); 
$outbyref =& $o->getbyval(); 
println(\$in: .$in); 
println(\$outbyval: .$outbyval); 
println(\$outbyref: .$outbyref); 
println(\$this->var: .$o->var); 
println(-----------------after change-----------------); 
$in = after change; 
println(\$in: .$in); 
println(\$outbyval: .$outbyval); 
println(\$outbyref: .$outbyref); 
println(\$this->var: .$o->var); 
println();
/* 
以下输出结果是我(夜猫子)擅自编辑添加的,主要是为后来人查看方便加在这里,越肉代庖,向longnetpro致歉 
输出结果: 
============ setbyref getbyref ============= 
-----------------before change---------------- 
$in: before change 
$outbyval: before change 
$outbyref: before change 
$this->var: before change 
-----------------after change----------------- 
$in: after change 
$outbyval: before change 
$outbyref: after change 
$this->var: after change
============ setbyref getbyval ============= 
-----------------before change---------------- 
$in: before change 
$outbyval: before change 
$outbyref: before change 
$this->var: before change 
-----------------after change----------------- 
$in: after change 
$outbyval: before change 
$outbyref: before change 
$this->var: after change
============ passbyref getbyval ============= 
-----------------before change---------------- 
$in: before change 
$outbyval: before change 
$outbyref: before change 
$this->var: before change 
-----------------after change----------------- 
$in: after change 
$outbyval: before change 
$outbyref: before change 
$this->var: after change 
*/
?>
其它类似信息

推荐信息