2在一个函数中返回

时间:2011-12-28 12:34:30

标签: php function

我想用一个函数返回2个不同的值。这些是我的功能:

function example1 ($a) {
    return $result1;
    return $result2;
}

function example2 ($edit, $account, $value) {
    $config ($edit);
}

像这样,我在$result1 - 变量中得到$config。但是我需要做些什么才能在我的example1 - 函数中获取两个返回值?

9 个答案:

答案 0 :(得分:4)

这可能是最干净的方法:

function example1($a)
{
    return array($result1, $result2)
}

// get both values
list($config1, $config2) = example1($a);

这将使$config = $result1$config2 = $result2

答案 1 :(得分:3)

你不能在一个函数中返回2个变量,你应该返回一个数组:

function example1 ($a) {
    $result[0] = 'something';
    $result[1] = 'something else';
    return $result;
}

答案 2 :(得分:1)

Php不允许来自同一函数的多次返回(例如python),所以如果你想这样做,你必须返回一个数组,一个对象,或重做你的逻辑。

或者重做你的逻辑以返回一个对象数组。

答案 3 :(得分:1)

使用关联数组或stdClass作为返回变量。

function example1 ($a) {
    return array("result_1" => $result1 , "result_2" => $result2 );
}

并在需要的地方检索这些值。

$answer = example1($a);
$firstResult = $answer["result_1"];
$secondResult = $answer["result_2"];

但请注意,这不起作用:

 $firstResult = example1($a)["result_1"] ;

并且由于PHP的缺点而会出现语法错误。因此,首先分配数组,然后检索值。

答案 4 :(得分:1)

您只需将结果放入数组,然后返回所述数组

function example1 ($a) {
    $array = array();
    $array[0] = $result1;
    $array[1] = $result2;
    return $array;
    }

答案 5 :(得分:1)

几种解决方案:

  1. 使用数组:return array($result1, $result2); 然后,您可以使用list($config1, $config2) = $returned;将两个值分配给2个变量。

  2. 使用参考。

    function example_1($a, &$result2) {
      $result2 = 'whatever';
      return $result1;
    }
    
    // $config1 will contain $result1
    // $config2 will contain $result2 ('whatever' in this case)
    $config1 = example_1($a, $config_2);
    

答案 6 :(得分:0)

您可以使用传递引用参数:

function example(&$result1, &$result2) {
  $result1 = 'a';
  $result2 = 123;
}

example($a, $b);
echo "$a, $b";

答案 7 :(得分:0)

在一个函数或方法中不可能进行多次返回。但您可以返回一个包含多个值的数组:

function example1 ($a) {
    return array('top' => $result1, 'left' => $result2);
}

现在您可以访问这两个值:

$result = example1($a);
echo $result['top'] . ' x ' . $result['left'];

答案 8 :(得分:0)

返回数组:

function example1 ($a) {
    return array($result1, $result2);
}

并使用list来检索它:

list($a, $b) = example1('something');