我有一个返回多维数组的函数,但我还需要返回一个值。我目前通过global关键字使用单值,所以我可以在函数内修改它。
但是我想知道是否有另一种/更好的方法可以从函数中返回2个值?
当前(伪)代码:
global $iNumber;
$arrResult;
{do some calculations and queries}
$iNumber = 73;
return $arrResult;
调用此函数的函数可以使用数组数组,也可以使用已更新为73的全局变量。
但是有没有其他/更好的方法来组合或传递这两个不同的值?
答案 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