通过引用PHP中的函数传递?

时间:2012-02-08 17:37:30

标签: php

我有一个简单的函数,我用来比较一些东西,

function life($life) {
    while($life) {
        echo $life . '<br />';
        --$life;
    }
    return $life;
}
$life = life($user['lifeforce']);
if($life) { ... }

我应该通过引用传递它还是忘记它并使用我正在使用的东西?会不会更好......

function life(&$life) {
    while($life) {
        echo $life . '<br />';
        --$life;
    }
}
life($user['lifeforce']);
if($user['lifeforce']) { ... }

我不太了解通过引用传递的概念吗?

由于

1 个答案:

答案 0 :(得分:1)

首先请务必阅读php manual on references,尤其是关于passing by reference的部分。

简单示例:

function integer_division( $number, $divider, &$remain){
  $remain = $number%$divider;
  return floor( $number/$divider);
}

$remain = 0;
$result = integer_division( 5, 2, $remain);
// $remain now contains 1

只有在打算更改值原始变量时才应该使用引用(例如数组排序函数以这种方式工作),或者需要返回多于1的值(并且返回数组是一个不好的选项)。

所以直接回答你的问题:你应该使用第一种方式(除非你想在用户生活中拥有0)。