2012-02-13 67 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; }(見例如)
相關問題