你好,請幫我出關於從我是從函數返回三個變量likw這返回三個可變的功能,並檢查他們
return $data
return $success
return $error
功能 從
$check =$user->search($result);
調用返回的變量現在根據收到的變量來設置一些條件。我面臨的問題是,我如何獲得我已經收到的可用的名稱。我想通過名稱不是值 接受它像
if($check == $data)
你好,請幫我出關於從我是從函數返回三個變量likw這返回三個可變的功能,並檢查他們
return $data
return $success
return $error
功能 從
$check =$user->search($result);
調用返回的變量現在根據收到的變量來設置一些條件。我面臨的問題是,我如何獲得我已經收到的可用的名稱。我想通過名稱不是值 接受它像
if($check == $data)
function myfunc() {
... do stuff ...
$values = array($data, $success, $error);
return($values);
}
$data = myfunc();
echo "Data is ", $data[0];
return
只能返回一個單一的東西,它「放棄」的功能,所以你不能有連續2個或更多的回報 - 只有第一個將永遠執行。所以,解決方法是返回一個容器,其中包含您需要的所有值。在這種情況下,我使用了一個數組,但是返回可以「返回」任何東西 - 如果你願意的話,你可以讓一個對象返回。
你不能從一個函數返回一個以上的變量。我建議製作一個數組,然後返回。
return array('data' => $data, 'success' => $success, 'error' => $error);
你不能以這種方式返回三個變量。 $success
和$error
將永遠不會返回,因爲函數在第一個return $data
之後結束。
如果你想返回三個值,你可以做這樣的:
return array($data, $success, $error);
,並調用它是這樣的:
list($data, $success, $error) = $user->search($result);
我不太確定自己使用的情況下,但從您期望的變量看起來,我會建議將它們變成參考參數:
function search($data, &$success, &$error) {
這是wha很多原生的PHP函數都可以做,而且還有一個適用於像你這樣的狀態變量的習慣用法。缺點是,你總是有用額外的參數來調用該方法,那麼:
$check = $user->search($result, $success, $error);
不能解決您..how can i get the name of the vairable which i have received
(你試過簡單的方式不可解的),但我不能肯定什麼你的意思是或打算在那裏。
我不認爲原始海報試圖返回3個變量,而是有多個控制路徑,並根據某些條件返回不同的東西。
public function search($r) {
...
return array('data' => $data);
...
return array('success' => $success);
...
return array('error' => $error);
}
$check = $user->search($result);
switch(key($check)) {
case 'data':
// handle data
break;
case 'success':
// handle success
break;
case 'error':
// handle error
break;
}
+1:我認爲這實際上是OP想要的。 – 2011-03-22 15:54:28
乾淨的解決方案是在成功時返回數據集(例如數組),並在發生錯誤時拋出異常。使用這種方法將消除變量$ success的需要。
當你調用來實現這樣的方法,你可以去這樣的:
try
{
$data = $someObject->someFunction($some_parameter);
}
catch(Exception $e)
{
// error handling code path
}
的可能重複[PHP:是否有可能從一個函數返回多個值(HTTP://計算器。 com/questions/3579892/php-is-it-it-it-it-it-possible-returns-multiple-values-from-a-function)和[其他幾個](http://stackoverflow.com/search?q=multiple+返回值+ + [PHP])。 – Gordon 2011-03-22 15:45:47
使用Python,你可以返回一個元組,並使用理智的語法分配它的元素;) – ThiefMaster 2011-03-22 15:47:16