如何验证未定义的索引?

How can I validate an undefined index?

这是我的代码:

$fields = $bool === true ? $data[$value->uuid] : $data[$value->getUuid()];

如果“$value->uuid”或“$value->uuid”不是 $data 的索引,我收到一条错误消息:

Notice: Undefined index: 123

所以我尝试进行验证:

$fields = "";

      if(isset($data[$value->uuid])) {
        $fields = $data[$value->uuid];
      }
      if(isset($data[$value->getUuid()])) {
        $fields = $data[$value->getUuid()];
      }

但我仍然收到相同的错误消息。

您还需要检查 $value 是否具有属性:

if(isset($value->uuid) && isset($data[$value->uuid])) {
    $fields = $data[$value->uuid];
}

if(isset($value->getUuid()) && isset($data[$value->getUuid()])) {
    $fields = $data[$value->getUuid()];
}

第一个 isset() 检查 属性,第二个 - $data 数组的索引。 Example

编辑

您的情况如下:

//$fields = $bool === true ? $data[$value->uuid] : $data[$value->getUuid()];

$uuid = '';
$uuid_fn = '';

if(isset($value->uuid) && isset($data[$value->uuid])) {
    $uuid = $data[$value->uuid];
}

if(isset($value->getUuid()) && isset($data[$value->getUuid()])) {
    $uuid_fn = $data[$value->getUuid()];
}

$fields = $bool === true ? $uuid : $uuid_fn;