php - 如何基于函数内的foreach循环在php中编写if条件?
问题描述
我是这里的新手,请求帮助根据此函数的输出编写条件语句。
$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 调用并返回响应。当我运行它时,我看到打印在页面上的输出。因此,在 3 台服务器中,我希望它位于 1 台中,其余 2 台返回 false。一切工作到这里。
我基本上被困在如何推进这件事上。到目前为止的例子,
如果用户是从第一个 example1.com 服务器返回的,我应该运行另一个函数并说这个用户是从这个特定的服务器返回的。
如果用户没有从所有服务器返回,我应该打印一个错误。
非常感谢这里的任何帮助。非常感谢。
解决方案
为什么不这样:
$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";
}
推荐阅读
- swift - UITableViewCell 图像不是全宽
- javascript - 错误 WebGL useProgram: 程序无效
- r - 如何选择数据框中至少包含一个非缺失值变量的行?
- javascript - React Native 设置字体大小以填充父级
- python - Tkinter,树视图不随窗口调整大小
- r - 为什么 fifelse() 会抛出错误而 ifelse() 不会?
- sql-server - 在单个单元格中加入多个代码的代码表
- typescript - 具有动态和静态属性的接口
- python - 将带有列表的列转换为熊猫中的列
- javascript - 如何使用 apollo 服务器中的中间件对 graphql 关系解析器的结果进行解释?