Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Foreach循环-缺少数据-如何使用“创建”;无数据“;回应而不是收到警告_Php_Foreach - Fatal编程技术网

PHP Foreach循环-缺少数据-如何使用“创建”;无数据“;回应而不是收到警告

PHP Foreach循环-缺少数据-如何使用“创建”;无数据“;回应而不是收到警告,php,foreach,Php,Foreach,感谢您在此方面提供的任何帮助 我正在创建一个页面,其中包含来自各种气象仪器的一系列天气报告。我遇到的问题是,由于各种原因,有时这些仪器不发送某些数据。我使用foreach循环来显示所有的天气状况……但是如果一个站点没有提交,例如一个阵风值,那么我会在列表中得到一个警告。显然,我更希望名单上只写“无数据”或其他什么……而不是红色的大警告框 这是我一直在研究的代码 <table> <tbody> <tr> <t

感谢您在此方面提供的任何帮助

我正在创建一个页面,其中包含来自各种气象仪器的一系列天气报告。我遇到的问题是,由于各种原因,有时这些仪器不发送某些数据。我使用foreach循环来显示所有的天气状况……但是如果一个站点没有提交,例如一个阵风值,那么我会在列表中得到一个警告。显然,我更希望名单上只写“无数据”或其他什么……而不是红色的大警告框

这是我一直在研究的代码

<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
,如果没有设置,请填充“无数据”。研究该警告消息,您会发现大量结果显示如何处理此问题。