我想用一个函数返回2个不同的值。这些是我的功能:
function example1 ($a) {
return $result1;
return $result2;
}
function example2 ($edit, $account, $value) {
$config ($edit);
}
像这样,我在$result1
- 变量中得到$config
。但是我需要做些什么才能在我的example1
- 函数中获取两个返回值?
答案 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)
几种解决方案:
使用数组:return array($result1, $result2);
然后,您可以使用list($config1, $config2) = $returned;
将两个值分配给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');