仅在foreach语句中值为空时才更新

时间:2018-01-31 23:41:52

标签: php

我在任何空的$ li上一直收到错误matrix = np.random.random_integers(0,100,(10,6,8)) image_view = itk.GetImageViewFromArray(matrix.astype('Float32')) medianImageFilter = itk.MedianImageFilter.New(image_view, Radius = 3) medianImageFilter.Update() medianImage = medianImageFilter.GetOutput() newMatrix = itk.GetArrayViewFromImage(medianImage) ,是否有更快的方式不插入空白列/字段?除了Undefined property: stdClass::$之外,我仍然希望它插入非空的。

if ($li->company != "")

3 个答案:

答案 0 :(得分:2)

在Class构造函数中,您可以为所有属性设置默认值。

如果您无法修改构造函数,则可以使用ternary operators,一行ifelse变体

来替代更好的可读代码

例如:

$insert['company'] = (isset($li->company))? $li->company : "";

相同
if(isset($li->company))
  $insert['company'] = $li->company;
else
  $insert['company'] = "";

答案 1 :(得分:2)

使用isset()测试属性是否已设置,如果不是,则使用默认值。

$insert['company'] = isset($li->company) ? $li->company : "";

为避免大量重复,您可以使用循环:

foreach (['company', 'first', 'last', ...] as $field) {
    $insert[$field] = isset($li->{$field}) ? $li->{$field} : "";
}

DEMO

答案 2 :(得分:0)

将其包裹在空的测试中:

if($li->zip) {
  $insert['postcode'] = $li->zip;
}