Php 从函数中返回两个内容

Php 从函数中返回两个内容,php,function,return,Php,Function,Return,我有一个返回多维数组的函数,但我还需要返回一个值。我目前通过global关键字使用单个值,因此我可以在函数中修改它 但我想知道是否有其他/更好的方法从函数返回2个值 当前(伪)代码: 调用此函数的函数可以使用数组数组,也可以使用已更新为73的全局变量 但是有没有其他/更好的方法来组合或传递这两个不同的值呢?您可以通过两种方法来实现:返回数组或对象 阵列解决方案: function calculate(...) { //do some stuff return ['result' =&

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

但我想知道是否有其他/更好的方法从函数返回2个值

当前(伪)代码:

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


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

您可以通过两种方法来实现:返回数组或对象

阵列解决方案:

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;
}
对象解决方案:

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只是一个示例,您可以为此创建自己的类。

您可以通过两种方式来实现:返回数组或对象

阵列解决方案:

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;
}
对象解决方案:

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只是一个示例,您可以为此创建自己的类。

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

大概是这样的:

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

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

大概是这样的:

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

您可以通过引用传递它并以这种方式修改它,或者返回一个包含结果数组和数字的数组。之后,您可以从返回的数组中提取这两个值。@Rizier123其他人发布了第二个方法作为答案,为什么不发布一个带有引用参数的答案?@SammyG请参阅手册:如果遇到问题,就说出来。另请参见:如何巧妙地设置问题的格式。还要注意,“谢谢”被认为是噪音。只要投票选出有用的答案。@SammyG我不建议使用global。请参阅:在底部的“错误方式:全局”。因此,只要您喜欢,您可以通过引用或返回数组来执行此操作。@SammyG也可能您想阅读以下内容:不是为了吓跑您:),只是您将来有一个很好的So经验,并且知道So是完全不同的正确问法。您可以通过引用来传递它,并以这种方式修改它,或者返回一个包含结果数组和数字的数组。之后,您可以从返回的数组中提取这两个值。@Rizier123其他人发布了第二个方法作为答案,为什么不发布一个带有引用参数的答案?@SammyG请参阅手册:如果遇到问题,就说出来。另请参见:如何巧妙地设置问题的格式。还要注意,“谢谢”被认为是噪音。只要投票选出有用的答案。@SammyG我不建议使用global。请参阅:在底部的“错误方式:全局”。因此,只要您喜欢,您可以通过引用或返回数组来执行此操作。@SammyG也可能您想阅读以下内容:不是为了吓跑您:),只是您在将来有一个很好的So经验,并且知道So与正确提问方式大不相同。回答得很好!我不知道stdclass,我也没想过制作另一个数组来放入它们。我喜欢这个想法;虽然给出的每个答案都讨论了对象的解决方案,但也必须有一些东西。谢谢,回答得很好!我不知道stdclass,我也没想过制作另一个数组来放入它们。我喜欢这个想法;虽然给出的每个答案都讨论了对象的解决方案,但也必须有一些东西。谢谢