簡體   English   中英

如何基於 function 內的 foreach 循環在 php 中編寫 if 條件?

[英]How to write a if condition in php based on foreach loop inside a function?

我是這里的新手,請求幫助編寫基於此 function 的 output 的條件語句。

 $ID = '1234';
    
 $uc = array("example1.com", "example2.com", "example3.com");
    
 function ucQuery($ucarray, $ID){
    foreach ($ucarray as $value) {
        $host = $value;
        try{
            include('info.php');
            $response = $client->getUser(array("name" => ID))->return;
            print_r($response);
        }catch (Exception $e){
            echo "false";
        }
    }
    }
    
    ucQuery($uc, $ID);

info.php 對服務器有soapclient 調用並返回響應。 當我運行它時,我看到頁面上打印了 output。 因此,在 3 台服務器中,我希望它位於 1 台中,並且 rest 2 返回 false。 一切工作到這里。

我基本上被困在如何推進這件事上。 到目前為止的例子,

如果用戶是從第一個 example1.com 服務器返回的,我應該運行另一個 function 並說這個用戶是從這個特定的服務器返回的。

如果用戶沒有從所有服務器返回,我應該打印一個錯誤。

非常感謝這里的任何幫助。 非常感謝。

為什么不這樣:

$ID = '1234';
    
$uc = array("example1.com", "example2.com", "example3.com");

function ucQuery($ucarray, $ID){
    $user_data_array=[];
    foreach ($ucarray as $value) {
        $host = $value;
        try{
            include('info.php');
            $response = $client->getUser(array("name" => ID))->return;
            print_r($response);
            $user_data_array[$value]=$response;
        }catch (Exception $e){
            echo "false";
        }
    }
    return $user_data_array;
}
    
$user_data_array = ucQuery($uc, $ID);

if (count($user_data_array) < count($uc)) {
    // not all servers responded OK
    // do whatever you need to
    echo "User '$ID' was not returned from all servers";
}

foreach ($user_data_array as $server => $response){
    another_function($ID, $server);
    echo "User '$ID' was returned from server $server";
}

在線嘗試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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