我想知道在您仅读取变量时是否将其作为按引用传递的优良作法,还是应始终将其作为值传递。
引用传递示例:
$a = 'fish and chips'; $b = do_my_hash($a); echo $b; function &do_my_hash(&$value){ return md5($value); }
传递值的示例:
$a = 'fish and chips'; $b = do_my_hash($a); echo $b; function do_my_hash($value){ return md5($value); }
哪个更好 ?例如,如果我要循环运行1000次?
循环示例:
for($i = 0 ; $i < 1000 ; $i++){ $a = 'Fish & Chips '.$i; echo do_my_hash($a); }
如果您打算传递一个 值 (因此该函数不会对其进行修改) ,则没有理由通过引用传递它:这只会使您的代码更难以理解,因为人们会认为“ 此函数可以修改我将要修改的内容。传递给它-哦,它没有修改? ”
在您提供的示例中,do_my_hash函数不会修改传递给它的 值 ;因此,我不会使用参考。
do_my_hash
人们使用引用的另一个原因是因为他们认为引用可以使代码更快。但这是错误的。更糟糕的是:引用通常会使代码变慢!是的,引用通常会使代码变慢- 抱歉,我只需要重复一遍就可以使代码更清楚。
实际上,即使您不主要关注性能,这篇文章也可能是有趣的文章;-)