第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么在繼續(xù)之后;執(zhí)行進一步的功能代碼被執(zhí)行?

為什么在繼續(xù)之后;執(zhí)行進一步的功能代碼被執(zhí)行?

PHP
尚方寶劍之說 2021-07-06 17:11:02
我有一個功能,如:public function checkItems(int $id, array $items){    $this->validateItems($id, $items);    foreach($items as $item) {        ...// further code    }    return $items;}private function validateItems(int $id, array $items){    foreach ($items as $item) {        if (!is_int($item->itemId)) {            continue;        }    }}問題是,當(dāng)我寫這個時,如果:if (!is_int($item->itemId)) {    continue;}在函數(shù) checkItems() 內(nèi)部(沒有移動到另一個)它工作得很好,因為 ..//如果項目錯誤,則不會執(zhí)行進一步的代碼。如果信息無效,它基本上返回 $items 。但是當(dāng)我將驗證移到另一個函數(shù)中時,盡管有 continue 語句,但最后它會再次循環(huán)并執(zhí)行進一步的代碼。有人能告訴我如何通過驗證轉(zhuǎn)移到另一個功能來正確解決這個問題嗎?
查看完整描述

2 回答

?
精慕HU

TA貢獻1845條經(jīng)驗 獲得超8個贊

continue 只在它被使用的循環(huán)中工作 - 的 foreach ($items as $item)


如果你想在驗證函數(shù)中使用它,你要么需要傳回某種有效選項數(shù)組 - 或者在 for 循環(huán)中使用驗證 ...// further code


就像是:


public function checkItems(int $id, array $items)

{

    foreach($items as $item) {

        if ($this->validateItems($id, $item) {

            ...// further code

        }

    }


    return $items;

}


private function validateItems(int $id, array $item)

{

    //$id is never used?

    if (!is_int($item->itemId)) {

        return false;

    }

    return true;

}


查看完整回答
反對 回復(fù) 2021-07-09
?
躍然一笑

TA貢獻1826條經(jīng)驗 獲得超6個贊

循環(huán)內(nèi)的 continue 命令跳過該循環(huán)內(nèi)它下面的任何代碼,并從頂部開始循環(huán)。


因此,將它放在任何循環(huán)的末尾都沒有區(qū)別,因為沒有其他代碼可以跳過。和循環(huán)從頂部開始,就好像沒有繼續(xù)命令一樣。


如果您以這種方式進行驗證,則它需要繼續(xù),則此繼續(xù)將始終指代它所在的循環(huán)。因此,如果您將其移動到其他函數(shù),它會跳過該函數(shù)內(nèi)部循環(huán)下方的代碼的執(zhí)行,但這不會影響任何其他循環(huán),尤其是在其他函數(shù)中。


因此,如果您在 checkItems() 內(nèi)的 foreach 內(nèi)使用 continue ,它將跳過該函數(shù)的 foreach 內(nèi)的命令。


但是,如果您將 continue 移至函數(shù) validateItems() 并從 checkItems() 內(nèi)部調(diào)用該函數(shù),則在 checkItems() 內(nèi)部將不會影響使用 validateItems() 內(nèi)部的 continue


到第二部分如何進行驗證。


你的驗證器應(yīng)該返回一個真/假,并在 checkItems() 中測試它,如果它是假的,那么你使用 continue


<?php


public function checkItems(int $id, array $items)

{

    $this->validateItems($id, $items);


    foreach($items as $item) {


        if(false === $this->validateItems($id, $items)) {

            continue;

        }


        ...// further code

    }


    return $items;

}


private function validateItems(int $id, array $items)

{

    foreach ($items as $item) {

        if (!is_int($item->itemId)) {

            return false;

        }

    }

    return true;

}


查看完整回答
反對 回復(fù) 2021-07-09
  • 2 回答
  • 0 關(guān)注
  • 203 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號