2010-11-06 4 views
0

Я не нашел полезного объяснения того, почему автоматическое строковое кастинг PHP является полезной функцией? Мне кажется, что это может вызвать больше ошибок и проблем, чем это решает. Не говоря уже о дополнительных циклах процессора, необходимых для проверки каждой строки, если ее нужно преобразовать. Я не могу придумать каких-либо примеров, когда эта функциональность полезна, но, возможно, я недостаточно изобретательна, или я должен использовать вызовы методов, такие как atoi или встроенный метод int().Автоматическое преобразование строк PHP

Надеюсь, у кого-то есть идея, лежащая в основе этого обоснования.

+3

@Mark: PHP является слабо типизированным, а не безличным. –

+0

Извините, перепутайте мою терминологию. –

+1

Ну, новичкам легче писать PHP-программы, что, вероятно, является одной из причин популярности PHP. Это, конечно, не единственный язык, который использует это так называемое «жонглирование типа» и имеет смысл для динамического языка. Другими языками, которые используют очень похожую систему, являются Ruby, Python, PERL, JavaScript, так что это совсем не плохо или «странно». Существует несколько рекомендаций и общих правил, которые, если вы последуете за вами, не будут иметь никаких проблем с этим. –

ответ

4

PHP не был построен вокруг таких понятий, как «логика» или «дизайн»; он просто «вырос» во что-то, предназначенное для простого использования. Таким образом, некоторые из функций либо не имеют смысла, либо имеют «взломанные» ощущения. Это одна из них.

+2

В этом нет ничего «взломана». Динамическая типизация предшествует PHP и довольно популярна сегодня на многих языках сценариев. Например, Perl предшествует PHP почти десятилетием и использует очень похожую систему типов. Итак, Ruby и JavaScript появились примерно в одно и то же время. – meagar

+0

очень верно. +111 – user187291

+0

Думаю, я просто привык к языкам, которые статически типизированы. – GWW

2

Что вы подразумеваете под «струнным литьем»? Вы говорите о том, как числовые и строковые типы могут динамически изменяться в зависимости от того, как они используются, без явных приемов?

Это полезная функция, если вы не считаете, что сильная типизация важна. Я считаю, что это и многие функции PHP были оригинально реализованы, чтобы облегчить их изучение. Это едва ли единственный язык, который жонглирует такими типами, и в этом нет ничего плохого. Список Википедии many languages, который аналогичный тип системы: Erlang, Groovy, JavaScript, Lisp, Lua, Objective-C, Perl, PHP, Prolog, Python, Ruby, Smalltalk и Tcl

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

Вы говорите, что привыкли использовать atoi; как , что полезнее, чем просто обрабатывать переменную, такую ​​как ее содержимое, числовое и позволяет языку определить остальное?

+1

Я полагаю, это очень верно, я действительно не думал об этом с точки зрения кривой обучения. – GWW

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