致命错误:不能在empty()的write上下文中使用方法返回值


Fatal error: Can't use method return value in write context in empty()

我得到以下错误,为什么是这样?

致命错误:不能在写上下文中使用方法返回值

foreach ($transfer_nids as $nid) {
    $wrapper = entity_metadata_wrapper('node', $nid);
    $Result[] = array(
        'S_name' => empty($wrapper->field_s->value()->title) ? 'no data' : $wrapper->field_s->value()->title,
        'r_name' => empty($wrapper->title->value()) ? 'no data' : $wrapper->title->value(),
        'max' => empty($wrapper->field_max->value()) ?  'no data' : $wrapper->field_max->value(),
        );
  }
return ai_wrap_result($Result, 'Info');
}

在旧版本的PHP (<5.5)中,由于编译器的原因,你不能在函数返回时直接使用empty()

您需要做的是将结果保存在一个中间变量中,并检查它是否为empty(),即

foreach ($transfer_nids as $nid) {
    $wrapper = entity_metadata_wrapper('node', $nid);
    $rName = $wrapper->title->value();
    $max = $wrapper->field_max->value();
    $Result[] = array(
        'S_name' => empty($wrapper->field_s->value()->title) ? 'no data' : $wrapper->field_s->value()->title,
        'r_name' => empty($rName) ? 'no data' : $wrapper->title->value(),
        'max' => empty($max) ?  'no data' : $wrapper->field_max->value(),
    );
}
return ai_wrap_result($Result, 'Info');

在旧版本的PHP(至少5.3,但不是5.6)中,您不能访问方法返回的对象的成员:

包装器-> field_s ->价值()->标题

你必须升级你的PHP版本,或者使用一个临时变量