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

时间:2015-10-15 07:23:41

标签: php

我收到以下错误,为什么会这样?

  

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

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');
}

2 个答案:

答案 0 :(得分:0)

在(旧版本)的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');

答案 1 :(得分:0)

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

$ wrapper-> field_s->值() - >标题

您必须升级您的PHP版本,或使用临时变量。