[英]Wouldn't the if statement in this PHP function be useless?
我正在嘗試編寫某人的代碼並遇到此問題。
private function getAttImages($limit, $forumIds = 0, $fidsReverse = false, $topicIds = 0, $membersIds = 0, $order = 'attach_date', $sort = 'desc', $group = null)
{
$fids = '';
if ($forumIds)
{
$r = '';
if ($fidsReverse)
{
$r = ' NOT ';
}
if (is_array($forumIds))
{
$forumIds = implode(',', $forumIds);
}
$fids = ' AND forums_topics.forum_id ' . $r . ' IN (' . $forumIds . ')';
}
功能還在繼續。 但是,問題是,首先,如果每次將此函數調用$ forumIds設置為0時,if語句if($ forumIds)會沒有用嗎?
否。$ forumIds在函數參數中設置為零,但是只有在有人調用函數但未為該參數顯式設置值的情況下,才將零應用於$ forumIds。
編碼
..., $forumIds = 0, ...
為該變量設置默認值。 可以在調用時用任何值覆蓋它,但是如果沒有提供$forumIds
值,它將默認為0。
請參閱PHP文檔: http : //php.net/manual/zh/functions.arguments.php#functions.arguments.default 。
如果未指定其他任何內容,則這是此功能的默認值 。 這意味着,如果在調用函數時未輸入任何內容,則默認為0
並且該函數實際上什么也不做。
getAttImages(5, 1)
本質上$forumids
$limit
設置$limit
1,將$forumids
為1。在不輸入任何內容的情況下,其余參數將設置為其默認值( $fidsReverse = false, $topicIds = 0, $membersIds = 0, $order = 'attach_date', $sort = 'desc', $group = null
)
唯一需要的參數是limit,因為其中沒有默認值。 因此,至少可以這樣調用該函數:
getAttImages(0);
其余的將默認為函數中定義的值。 但是,此代碼不會執行任何操作,因為$forumIds
將為0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.