Символы на PHP: строка в число и обратно

Информация во все времена представляла собой символы. Только когда появилось программирование, она частично стала буквами, цифрами и знаками (в формальном смысле).

До известного времени наибольшей популярностью пользовалась устная речь, собственноручно изготовленные символы, жесты, а также произведения искусства, в частности. Важно, что все эти варианты естественного представления информации от мала до велика всегда можно было описать словами, то есть сделать доступными программной обработке в том или ином смысле.

Строки и числа

Строки - это, прежде всего, совокупности различных символов. В разных средствах программирования дробная часть отделялась от целой по-разному. Одни предпочитали точку, другие запятую (в PHP преобразование строки в число подразумевает "."). Триады разделялись одинарным апострофом, запятой или пробелом. Вещественные числа записывались через букву "Е".

Все это формальности. Математика и принципы работы любого процессора всегда признавали числа без излишеств, а для работы с вещественными значениями были разработаны соответствующие дополнительные процессоры.

Но мир переменных конкретного типа (для программ начала эры) и реализация современной идеи консенсуса всех типов данных означает: в PHP преобразовать строку в число все равно что ничего не сделать. В лучшем случае PHP «отрежет», а точнее, сделает 0 или число, если в исходной строке есть хотя бы одна цифра. Все цифры до первого нецифрового символа составят это число.

Общее правило преобразования

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

Любой нецифровой символ в последовательности цифр останавливает процесс, и результат преобразования PHP "строка в число" будет только тем значением, которое сформировалось до первого нецифрового символа.

Математика и обработка символов

Что сложнее, первое или второе, даже с позиций формул, не помещающихся на странице, внушительных матриц, графов, распутать которые порой не могут даже авторы, производных от интегралов, дифференциалов от интегралов и многочленов в n-том поколении, сказать очень просто: общество, несомненно, чтит заслуги математики и математиков, но обработка символов важнее, сложнее и покрывает математику, как пуховое одеяло, обеспечивая пытливому уму, не могущему выйти за пределы магии чисел, благоприятную среду для творчества.

Обычно на PHP строка в число преобразуется автоматически, но никогда не будет лишним проверить это. Лучше всего всегда быть уверенным: PHP правильно понимает, что та или иная переменная - это число. Если есть хоть тень сомнения, следует явно указать тип переменной (int) или (float) перед значением и проверить, как PHP понимает тип переменной функциями is_integer() или is_float().

Тенденции современного программирования

Классическая интерпретация задачи на PHP "строка в число" лежит в пределах представлений современного программирования. Обратный процесс имеет значительно более разнообразные варианты. Функциями number_format(), printf(), sprintf() можно творить чудеса, причем не только на уровне одного числа, но и группы чисел.

Преобразование на PHP "строка в число" свидетельствует, скорее, о том, что и это можем, но математика и численные вычисления - это не наш конек.

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

Комментарии