读书笔记[PHP程序设计]
时间:2008-04-21 来源:liuxingyuyuni
?php
$names = array("userOne", "userTwo", "userThr");
/**
* @desc 默认情况下,返回的值是复制的,
* 见鬼的是加上“&”只是个声明,也就说他具备了这个能力,
* 但并未修改默认规则,在调用方法之前还要加“&”符号
* 当在函数声明时加上“&”符号,则返回对其返回值的引
* 用(别名)●前提条件是在实际调用的时候方法前也要加上"&",多讨厌...
* */
function & find_one($num) {
global $names;
return $names[$num];
}
// 返回$names第二个元素的一个引用
$person =& find_one(1);
$person = "BianYuan";
//其值已经改变
echo "";
print_r($names);
/**
* @desc 个人想法:1. 定义一个方法: function & find_one(){}指明了返回的是某个数据的引用
* [通常会这样理解,我"以为"这个方法默认已经是引用的了]然尔在使用的时候依
* 然要在方法前加“&”让我觉得很不习惯,也许不只是我自己.我觉得更好的情况
* 应该是不想让方法引用的时候加某些标记符号,更贴心一些。因为即然程序员定
* 义这个方法加了“&”之后,应该使用这个功能的地方较多,SO。。。
*
* 2. 另外我觉得这种操作最好少用,因为针对$names变动可能会发生在许多地方
* 以后维护起来非常麻烦,因为你可能要找几个地方才可以确定$names在哪几个地
* 方被修改,如果一定要这样使用的话,最好将修
* 改$names的几处地方全部封装到到一个方法当中,利于修改[即所谓对可变性的封装]
*
* */
?>
相关阅读 更多 +