Задать вопрос
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)
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 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(), который возвращает значение.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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