2011-03-21 25 views
0

返回二元函數的我從我的對象,並在返回調用搜索功能,我想發送的結果加上一些消息,所以我可以返回兩個變量一個與陣列和一個與像$數據和$消息從功能

消息
$this->query=("select * from user where pno='".$search."'"); 
$rd = $this->executeQuery(); 
return @$data = $rd->fetch_assoc(); 

return $message; 

當它回到

$result=$user->search($result); 

我怎樣才能獲取結果從它 感謝

+0

什麼是'$ message',它來自哪裏?它可以包含什麼?你能向我們展示你的代碼更多的上下文嗎?根據你的回答,解決這個問題的最好方法將會非常不同。 – Charles 2011-03-21 22:19:49

+0

$消息是有點像這樣 }否則{ $錯誤= 「」; $ i = 1; foreach($ validate-> getError()as $ err){ $ error。=「$ i)」。 $ err。「」。「
」; $ i ++; } 的foreach($ errors_all爲$犯錯){$ 錯誤。= 「$ I)」。 $ errs。「」。「
」; $ i ++; } return $ error; – user667340 2011-03-21 22:22:27

+0

這就是我想的,謝謝。 – Charles 2011-03-21 22:25:21

回答

1

雖然@萌的答案是完全正確的,你可能不想爲錯誤處理做到這一點。

爲什麼?

因爲接下來你會發現自己不必從 *每* 功能在一個元素和其他可能的錯誤的真實數據,然後你返回兩個元素的數組每次都需要檢查錯誤,即使你無法做任何事情。

這會變得單調而乏味真的快。

你處理錯誤,所以像對待錯誤!發生錯誤時,throw an exception。如果呼叫代碼可以優雅地從錯誤中恢復,它可以查找並期望處理異常。如果調用代碼無法從錯誤中恢復,然後直到達到a default exception handler,您可以配置爲優雅和微妙的處理告訴的東西打破了用戶的責任除外會爬起來的鏈條。

+0

感謝您的解釋 – user667340 2011-03-21 22:36:36

+0

雅在我寫我的時候,我沒有看到你正在嘗試處理錯誤的部分。我的解決方案是返回多個變量。錯誤處理是一件單獨的事情:-) – moe 2011-03-21 22:39:45

2

把你的變量數組和返回數組。

所以你的功能例如可以返回此:

return array($data, $message);

,那麼你可以調用你的函數是這樣的:

list($data, $message) = search('hello');

+0

或'list($ data,$ message)= search('hello');'作爲替代。 – mhitza 2011-03-21 22:23:16

+0

我幾乎立即編輯了我的解決方案並將其更改爲您擁有的解決方案。應該是已經 – moe 2011-03-21 22:25:29