Как я могу проверить неопределенный индекс? - PullRequest
0 голосов
/ 29 января 2020

Это мой код:

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

, если "$ value-> uuid" или "$ value-> uuid" не является индексом $data, я получаю сообщение об ошибке:

Примечание: неопределенный индекс: 123

Итак, я попытался сделать проверку:

$fields = "";

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

Но все равно я получаю то же сообщение об ошибке.

1 Ответ

2 голосов
/ 29 января 2020

Вам также необходимо проверить, имеет ли $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. Пример

РЕДАКТИРОВАТЬ

Ваше состояние будет выглядеть следующим образом:

//$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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...