簡體   English   中英

這個PHP函數中的if語句會沒有用嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM