最佳实践:返回多个值

时间:2015-06-16 15:29:42

标签: php function methods coding-style code-standards

从纯编码最佳实践角度推荐采用什么作为中大型开发团队的标准?

返回顺序数组:

function get_results($filter) {
    $query = "SELECT SQL_CALC_FOUND_ROWS, * FROM ...";

    $results = ...
    $total = ...

    return array($results, $total);
}

返回一个关联数组:

function get_results($filter) {
    $query = "SELECT SQL_CALC_FOUND_ROWS, * FROM ...";

    $results = ...
    $total = ...

    return array(
        'resuts' => $results, 
        'total' => $total
    );
}

返回单个结果并按引用分配第二个结果(?!):

function get_results($filter, &$count = null) {
    $query = "SELECT SQL_CALC_FOUND_ROWS, * FROM ...";

    $results = ...
    $total = ...

    $count = $total;
    return $results;
}

随意提出任何其他方法。

1 个答案:

答案 0 :(得分:4)

从PHP文档:

  

函数不能返回多个值,但返回数组可以获得类似的结果。

鉴于文档陈述的内容,所有这些似乎都是很好的做法。 comment in the documentation显示另一种方式:使用list()。请参阅以下示例:

function fn($a, $b)
{
   # complex stuff

    return array(
      $a * $b,
      $a + $b,
   );
}

list($product, $sum) = fn(3, 4);

echo $product; # prints 12
echo $sum; # prints 7