truekenny
@truekenny

Yii2: почему для ActiveRecord отличаются получаемые значения var_dump($ar['test'] ?? 0) и var_dump($ar['test'])?

Модель:
class ArModel extends yii\db\ActiveRecord
{
    public $test;
}

Пример использования:
$ar = new ArModel();
$ar->test = 5;
var_dump($ar['test'] ?? 0);
var_dump($ar['test']);

Вывод:
int(0)
int(5)
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov
Web developer
Потому что не указана таблица БД для этой модели.

var_dump($ar['test'] ?? 0);

$ar['test'] ?? 0 эквивалентно isset($ar['test']) ? $ar['test']: 0
Идет вызов \yii\db\BaseActiveRecord::__isset(), который ловит Exception "The table does not exist" и возвращает false.

var_dump($ar['test']);

Идет вызов \yii\db\BaseActiveRecord::__get(), который возвращает значение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы