PHP Foreach循环-缺少数据-如何使用“创建”;无数据“;回应而不是收到警告
感谢您在此方面提供的任何帮助 我正在创建一个页面,其中包含来自各种气象仪器的一系列天气报告。我遇到的问题是,由于各种原因,有时这些仪器不发送某些数据。我使用foreach循环来显示所有的天气状况……但是如果一个站点没有提交,例如一个阵风值,那么我会在列表中得到一个警告。显然,我更希望名单上只写“无数据”或其他什么……而不是红色的大警告框 这是我一直在研究的代码PHP Foreach循环-缺少数据-如何使用“创建”;无数据“;回应而不是收到警告,php,foreach,Php,Foreach,感谢您在此方面提供的任何帮助 我正在创建一个页面,其中包含来自各种气象仪器的一系列天气报告。我遇到的问题是,由于各种原因,有时这些仪器不发送某些数据。我使用foreach循环来显示所有的天气状况……但是如果一个站点没有提交,例如一个阵风值,那么我会在列表中得到一个警告。显然,我更希望名单上只写“无数据”或其他什么……而不是红色的大警告框 这是我一直在研究的代码 <table> <tbody> <tr> <t
<table>
<tbody>
<tr>
<th>Site</th>
<th>Temperature°F</th>
<th>Dew Point°F</th>
<th>Humidity%</th>
<th>Wind Direction</th>
<th>Wind Speed MPH</th>
<th>Wind Gust MPH</th>
<th>Pressure (mb)</th>
</tr>
<?php foreach($data->STATION as $site): ?>
<tr>
<td> <?php echo($site->NAME); ?> </td>
<td> <?php echo($site->OBSERVATIONS->air_temp_value_1)->value; ?> </td>
<td> <?php echo($site->OBSERVATIONS->dew_point_temperature_value_1d)->value; ?> </td>
<td> <?php echo($site->OBSERVATIONS->relative_humidity_value_1)->value; ?> </td>
<td> <?php echo($site->OBSERVATIONS->wind_cardinal_direction_value_1d)->value; ?> </td>
<td> <?php echo($site->OBSERVATIONS->wind_speed_value_1)->value; ?> </td>
<td> <?php echo($site->OBSERVATIONS->wind_gust_value_1)->value; ?> </td>
<td> <?php echo($site->OBSERVATIONS->sea_level_pressure_value_1d)->value; ?> </td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
场地
温度℉
露点华氏度
湿度%
风向
风速每小时
阵风时速
压力(mb)
这些都来自API的JSON数据。问题是,如果气象仪器的新观测结果没有发送阵风值……那么JSON数据中就没有该变量的任何内容。但是,我的代码仍然在JSON数据中搜索它。因此,我得到警告:
注意:未定义的属性:stdClass::$wind\u gust\u value\u 1,在C:\wamp64\www\mesowesttable.php的第48行
有没有办法让表填充“无数据”而不是得到警告?某种类型的“if/then”语句
谢谢大家,
Justin您可以检查是否为该变量设置了值:
$wind_gust_value = isset($site->OBSERVATIONS->wind_gust_value_1->value) ? $site->OBSERVATIONS->wind_gust_value_1->value : 'empty';
echo $wind_gust_value;
或者首先使用一些数据初始化,您可以使用PHPs(?)检查是否设置了该值
<?php echo $site->OBSERVATIONS->wind_gust_value_1->value ?? 'no data'; ?>
检查是否在第48行之前设置了
stdClass::$wind\u gust\u value\u 1
,如果没有设置,请填充“无数据”。研究该警告消息,您会发现大量结果显示如何处理此问题。