从函数返回2个东西

时间:2016-08-31 23:04:37

标签: php function return

我有一个返回多维数组的函数,但我还需要返回一个值。我目前通过global关键字使用单值,所以我可以在函数内修改它。

但是我想知道是否有另一种/更好的方法可以从函数中返回2个值?

当前(伪)代码:

global $iNumber;
$arrResult;
{do some calculations and queries}

$iNumber = 73;
return $arrResult; 

调用此函数的函数可以使用数组数组,也可以使用已更新为73的全局变量。

但是有没有其他/更好的方法来组合或传递这两个不同的值?

2 个答案:

答案 0 :(得分:2)

您可以通过两种方式完成此操作:返回数组或对象。

数据解决方案:

function calculate(...) {
   //do some stuff
   return ['result' => $arrResult, 'iNumber' => $iNumber];
}

对象解决方案:

function calculate(...) {
   //do some stuff
   $object = new stdClass();
   $object->result = $arrResult;
   $object->iNumber = $iNumber;
   return $object;
}

stdClass只是一个例子,您可以为此创建自己的类。

答案 1 :(得分:0)

您可以创建一个类并使用类变量。

这样的事情:

class Test
{
  public $iNumber;

  function __construct()
  {
    # code...
  }

  public function yourCal()
  {
    // you calculations
    $this->setNumber(73);

    return $arrayOfArrays;
  }

  public function getNumber()
  {
    return $this->iNumber;
  }

  public function setNumber($var)
  {
    $this->iNumber = $var;
  }
}

// Use the class in another php file
include 'Test.php';
$test = new Test();

// do calculations
$arrayOfArrays = $test->yourCal();
// get the number
$iNumber =  $test->getNumber();

echo $iNumber; // returns 73
print_r($arrayOfArrays); // print your array