PHP函数中有两种不同的返回类型

时间:2012-02-13 15:06:25

标签: php function return

  

可能重复:
  Multiple returns from function

是否可以在同一个PHP函数中返回2个结果?一个是数组,另一个是整数。有人可以举个例子吗?

5 个答案:

答案 0 :(得分:4)

function functest() {
  return array(1, "two");
}

list($first,$second) = functest();

答案 1 :(得分:1)

没有什么可以阻止你从函数中返回你喜欢的任何类型。您可以返回包含多个键的字典,或混合对象类型的数组,或其他任何内容。你喜欢什么。

$arr = array();
$arr[] = $some_object;
$arr[] = 3;
$arr["a_string"] = "foo";
return $arr;

答案 2 :(得分:1)

你可以选择模拟多个返回值(前两个,只是将多个值包装成一个):

  1. 使用以下两个值返回arrayreturn array($myInt, $myArr);(请参阅例如parse_url()。)
  2. 创建一个专用的包装器对象并返回:return new MyIntAndArrayWrapper($myInt, $myArr);
  3. 在函数签名中添加“输出参数”:function myFunc(&$myIntRetVal) { ... return $myArr; }(参见例如preg_match(..., &$matches)。)

答案 3 :(得分:0)

这个怎么样?

function myfunction() {
  //Calculate first result
  $arrayresult=...

  //Calculate second result
  $intresult=...

  //Move in with each other . don't be shy!
  return array($arrayresult,$intresult)
}

和其他代码

$tmp=myfunction();
$arrayresult=$tmp[0];
$intresult=$tmp[1];

答案 4 :(得分:0)

完全有可能,因为PHP不使用强类型。只需以您想要的任何类型返回您想要的值。一个简单的例子:

function dual($type) {
  if ($type === 'integer')
    return 4711;
  else
    return 'foo';
}

您可以在来电方使用多种功能来查看您的类型,例如:gettypeis_intis_a