有沒有辦法要求函數參數是一個特定的數據類型,如數組?比如這樣的事情:PHP。有沒有辦法要求函數參數是一個數組?
function example(array $array){}
如果對所有的數據類型都這樣做了嗎?有沒有一個很好的資源可以告訴我如何做到這一點?
有沒有辦法要求函數參數是一個特定的數據類型,如數組?比如這樣的事情:PHP。有沒有辦法要求函數參數是一個數組?
function example(array $array){}
如果對所有的數據類型都這樣做了嗎?有沒有一個很好的資源可以告訴我如何做到這一點?
編輯:是的,你可以輸入,提示使用數組,所以編輯我的答案,並相應地改變。
你想要做的就是type-hinting。您無法鍵入提示基本數據類型,例如int
,string
,bool
。你可以用array
或對象和接口的類型提示:
function example_hinted1(array $arr) {
}
function example_hinted2(User $user) {
}
調用example_hinted1(5)
將產生一個PHP致命錯誤(也不例外),但稱它傳遞一個數組是完全確定。
如果您需要,以確保某些參數的功能是從一個基本的類型,你可以用代碼模擬你的函數內部此行爲:
function example($number) {
if (!is_int($number) {
throw new Exception("You must pass an integer to ".__FUNCTION__."()");
}
// rest of your function
}
那麼,這些段將工作:
example(1);
$b = 5 + 8;
example($b);
,而這些會拋出異常:
example('foo');
example(array(5, 6));
example(new User());
感謝您的解釋良好的答案,它幫助了很多。 –
不是所有,但對於數組和類型(類/接口) 。您可以在手冊中找到相關記錄。請先做功課,並在那裏看看,它會更詳細地回答你的問題。 – hakre
http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/#functions – maialithar