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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從 PHP 中的回調(diào)函數(shù)中跳出循環(huán)

從 PHP 中的回調(diào)函數(shù)中跳出循環(huán)

PHP
大話西游666 2021-09-18 13:57:54
對(duì)于一個(gè)項(xiàng)目,我正在運(yùn)行大量數(shù)據(jù)吞吐量,需要對(duì)其進(jìn)行分塊以進(jìn)行處理。此過程針對(duì)不同的用戶運(yùn)行多次。所有這些都運(yùn)行良好。有時(shí),處理需要拋出停止錯(cuò)誤以優(yōu)雅地中斷腳本(即:不使用die()而是記錄錯(cuò)誤)并繼續(xù)處理下一個(gè)用戶的數(shù)據(jù)。這是我的腳本的一個(gè)非常簡化的版本。我知道這可以在這種簡單的模式下重新排列以完全刪除回調(diào)函數(shù),但實(shí)際的腳本要求它像這樣設(shè)置。<?php$user_data = array(    'User 1' => array(        array(            1,2,3,4,5,6,7,8,9,        ),        array(            10,11,12,13,14,15,16,17,18,        ),    ),    'User 2' => array(        array(            1,2,3,4,5,6,7,8,9,10        ),        array(            11,12,13,14,15,16,17,18,19,20        ),    ),);foreach($user_data as $data_chunks){    foreach($data_chunks as $data_set){        foreach($data_set as $data){            myFunction($data, function($returned_data, $stop){                if($stop){                    //log error                    break 2;                }                print $returned_data." ";            });        }    }}function myFunction($data, callable $f){    $stop = false;    if($data>5){        $stop = true;    }    $data_to_return = $data*2;    $f($data_to_return,$stop);}?>PHP拋出一個(gè)致命錯(cuò)誤致命錯(cuò)誤:無法打破/繼續(xù) 2 個(gè)級(jí)別
查看完整描述

1 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

您能否讓 myFunction 返回一個(gè)值來指示循環(huán)是否應(yīng)該停止?


foreach($user_data as $data_chunks){

    foreach($data_chunks as $data_set){

        foreach($data_set as $data){

            // V-- Collect return value below

            $returned_stop = myFunction($data, function($returned_data, $stop){

                if($stop){

                    //log error

                }

                print $returned_data." ";

            });

            if ($returned_stop) { // <- Check to stop here

              break 2;

            }

        }

    }

}


function myFunction($data, callable $f){

    $stop = false;

    if($data>5){

        $stop = true;

    }

    $data_to_return = $data*2;

    $f($data_to_return,$stop);

    return($stop); // <- Return here

}


查看完整回答
反對(duì) 回復(fù) 2021-09-18
  • 1 回答
  • 0 關(guān)注
  • 182 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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