2012-02-13 74 views

回答

1

没有什么能阻止你从函数中返回你喜欢的任何类型。你可以返回一个带有多个键的字典,或者一个混合对象类型的数组,或者其他任何东西。你喜欢的都可以。

$arr = array(); 
$arr[] = $some_object; 
$arr[] = 3; 
$arr["a_string"] = "foo"; 
return $arr; 
4
function functest() { 
    return array(1, "two"); 
} 

list($first,$second) = functest(); 
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]; 
+0

谢谢大家 – Boumaili 2012-02-13 15:30:57

0

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

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

您可以使用主叫侧多种功能,了解哪种你有,例如:gettypeis_intis_a

1

您有几种选择来模拟多个返回值(前两个,但是,仅仅是一种多值包装成一个):

  1. 返回array与两个值:return array($myInt, $myArr); (见例如parse_url()
  2. 创建一个专用的包装对象,并返回此:return new MyIntAndArrayWrapper($myInt, $myArr);
  3. 添加一个“输出参数”的函数签名:function myFunc(&$myIntRetVal) { ... return $myArr; }(见例如)