Mysql PHP 7 , Strict Types, PDO MySQL и DECIMAL

Redjik

Джедай-мастер

grigori

( ͡° ͜ʖ ͡°)
Команда форума
странно - и не пятница, и не весна!
decimal - формат для хранения чисел с произвольной размерностью и точностью,
основной инструмент php для работы с числовыми данными с произвольной точностью - bcmath, тип данных у которого, внезапно, numeric!
не вижу причин по которым decimal в php должен приводиться к double, если он приводится к numeric
или вы забыли что есть такой тип данных? ;)

только не говорите мне, что нет таких типов, как json, ресурс или callable ))
 
Последнее редактирование:

Активист

Активист
Команда форума
странно - и не пятница, и не весна!
decimal - формат для хранения чисел с произвольной размерностью и точностью,
основной инструмент php для работы с числовыми данными с произвольной точностью - bcmath, тип данных у которого, внезапно, numeric!
не вижу причин по которым decimal в php должен приводиться к double, если он приводится к numeric
или вы забыли что есть такой тип данных? ;)

только не говорите мне, что нет таких типов, как json, ресурс или callable ))
Был бы такой тип! Но в PHP в т.ч. в type hinting есть только float и int, нет множества типов numeric. Как всегда в PHP об...лись. Пусть в релизе появится общий тип numeric, скалярный decimal, о чем и пост. Опять будет "это не баг , а фича". Но очевидно, что decimal это не строка, а числовой тип.
 

Активист

Активист
Команда форума
Описали проблему. В MySQL есть unsigned int, т.е. очень большие числа безнаковые, поэтому перевести их в базовые типы PHP не возможно, т.к. есть возможность переполнения

DECIMAL/NUMERIC could be huge number. It cannot fit into PHP's native types. Therefore, it should be "string".

BTW, AFAIK, MySQL supports unsigned 64 bit int. PHP's "int" is signed int and it's either 32 bit or 64 bit. It can overflow. I'm not sure how current implementation handles this. Return as "string" also? It should. IMO. Returning broken data from database is simply evil.
 

Вурдалак

Продвинутый новичок
в PHP он должен быть типа float
О каких потерях речь?
Тогда к четру весь этот type hinting
Как всегда в PHP об...лись.
@Активист не понимает, что такое float, scalar type hints и «в PHP об..лись». Всё, что мы должны вынести из этого топика.
 

Активист

Активист
Команда форума
@Вурдалак , все я понимаю. Если уж вводить типизацию данных , то делать это всерьез и надолго, что бы потом разработчики либ не писали "Returning broken data from database is simply evil.". Нужно расширять типы данных до знаковых/беззнаковых/определенной точности/размерности/, символы дополнить до широких символов.
 

Redjik

Джедай-мастер
основной инструмент php для работы с числовыми данными с произвольной точностью - bcmath, тип данных у которого, внезапно, numeric!
http://php.net/manual/en/intro.bc.php
http://php.net/manual/en/book.bc.php
в сигнатуре функций стринги
тут весь пост - общение глухих со слепыми =)))
 

MiksIr

miksir@home:~$
@Вурдалак , все я понимаю. Если уж вводить типизацию данных , то делать это всерьез и надолго, что бы потом разработчики либ не писали "Returning broken data from database is simply evil.". Нужно расширять типы данных до знаковых/беззнаковых/определенной точности/размерности/, символы дополнить до широких символов.
Может просто ЯП сменить? ;)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Был бы такой тип! Но в PHP в т.ч. в type hinting есть только float и int, нет множества типов numeric. Как всегда в PHP об...лись.
А resource в type hinting есть? Нету, а тип есть, черным по белому. А суслика NULL видишь? Нет. А он есть :)

Пусть в релизе появится общий тип numeric, скалярный decimal.
Нужно расширять типы данных до знаковых/беззнаковых/определенной точности/размерности/, символы дополнить до широких символов.
Прости, но у деда мороза другой адрес :(
Жизнь - дерьмо, понимаю.
 
Последнее редактирование:

Активист

Активист
Команда форума
Может просто ЯП сменить? ;)
Не, не реально. На .Net не пойду, а по другим хер найдешь сотрудников. Реально, PHP 7 позиционируется как революция в PHP. Ну чего не хватает - не хватает типов, а так из типов только int, float, string, bool
 

Redjik

Джедай-мастер
а что на пайтоне все еще веб делают?
джанго морально устарел чуть больше чем на вечность жеж...

а микросервисы мутить, есть масса других инструментов, которые работают шустрее и многопоточность умеют, в чем профит?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
я лично знаю пару команд, которые очень успешно пишут веб на питоне
 

Absinthe

жожо
джанго морально устарел чуть больше чем на вечность жеж..
В мире PHP на Yii делают же проекты, чем питон хуже?
Плюсы по сравнению с PHP есть: меньше фреймворков и больше вероятность найти человека с большим опытом разработки на каком-то определенном фреймворке.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
да, и даже на ларавеле тоже кто-то пишет, мир - он большой :)
 
Сверху