检查 PHP 中对象的 SOAP 数组

Check SOAP array for object in PHP

我正在构建一个邮政编码查找服务,该服务将自动完成表单并在找不到时求助于手动输入。

我已连接到 SOAP 客户端,提取了数据,但现在我需要检查数组以查看是否已设置值,如果没有,则执行其他操作。

到目前为止我有:

    $params = array('ah21'=>array('session_id'=>$sessionid,'input'=>"$postcode,$number",'data'=>'STREET_1,HOUSE_1,DISTRICT_LEVEL,ORGANISATION,DISTRICT_2,FORMATTED_PREMISE_NO,TOWN,POSTCODE,COUNTY,COUNTRY'));
    $address = $soapclient->__soapCall("ah21",$params);
    $address = $address->address;

我需要检查 'HOUSE_1' 是否有值,如果没有则显示 'STREET_1'。

$firstline = NULL;

function checkaddress(){
global $firstline;
  if (isset($address->HOUSE_1 )){
            $firstline = $address->HOUSE_1;             
  } else {
    $firstline = $address->STREET_1;    
}

我一无所获?此外,如果您没有猜到我正在学习 php,那么对我的代码的任何指示都会有很大帮助。

更新:忘记提及我正在别处打印 $firstline,所以重新出现在表格中。

难道你只是错过了一个: return $firstline 在函数末尾 ?

唯一可以说的是 $address->HOUSE_1 可能已设置但为空。您可以将您的代码替换为:

if ((isset($address->HOUSE_1) ? $address->HOUSE_1 : '') != '')
  $firstline = $address->HOUSE_1;