2011-01-29 1 views
3

Я был очень удивлен, обнаружив, что gettype($myModel->id) == 'string' для модели с целочисленным полем id в базе данных MySQL.Yii: атрибуты модели не сохраняют типы?

Это выглядит совершенно неправильно. Так ли это работает? Если да, то почему? В противном случае все идеи о том, как это могло случиться, приветствуются.

ответ

6

Насколько я знаю, Yii просто присваивает значения, получаемые от PDO, поэтому, вероятно, это должна быть вещь PDO. Tbh, я действительно не полагаюсь на реальные типы переменных в PHP, так как это язык с мягким типом, и это может быть опасно. Имо лучше назвать «is_numeric», чем проверять фактический тип переменной, например.

1

Here у вас есть какое-то объяснение от Yii форума:

Это дизайн и уже обсуждалось несколько раз на форуме ... Проблема в том, что значения в базе данных могут содержать большие цифры, чем значения PHP так строка используется.

Смежные вопросы