Форматирование строки в число на языке PHP

Язык PHP предоставляет множество простых способов конвертаций строк в числа. Одним условием является то, что строка должна состоять исключительно из числовых символов. Если же строка состоит из набора буквенных символов, то возможно лишь получить ее длину (length) или код символа в числовом формате (intchar\int[] chars).

Арифметический оператор «+» и преобразование через «(int)»

Данный оператор может перевести с року в число без использования встроенных функций. Разберем это на строковом значении:

<?php
$int_1 = +»100″; \\ поставив оператор + перед строкой — получаем конвертацию строки в число
$int_2 = «100» + 0; \\ при сложении строка переводится в число. Мы сохранили значение сложив строку с нулем
$int_3 = 0 + «100»; \\ поменяли местом ноль и строку
$int_4 = (int)»100″; \\ явное преобразование с помощью оператора (int)

\\ Функция var_dump($var) возвращает тип переменной и в скобках указывает ее значение

echovar_dump($int_1); \\ int(100)
echovar_dump($int_2); \\ int(100)
echovar_dump($int_3); \\ int(100)
echovar_dump($int_4); \\ int(100)
?>

Преобразование с помощью функции intval()

Функция intval(var) получает в качестве параметра любой тип и преобразует его в integer:

<?php
$str = «100»;
$int_from_str = intval($str); \\ Переводим значение в переменной str в число и сохраняем в другую переменную
echovar_dump($int_from_str); \\ int(100)
<?

Функция settype()

Функция settype(var, type) преобразовывает один тип переменной в другой. В первый параметр вставляется переменная или литерал, который нужно преобразовать, второй параметр указывает в какой тип преобразовывать — sring, integer, float, boolean и т. п.

Пример:

<?php
$str = «100»;
$str = settype($str, «integer»); \\ integer является строковым параметром и обрамляется кавычками
echovar_dump($str); \\ int(100)
?>

Что будет, если все эти возможности применить к символьной строке?

Любая операция, проведенная над символьной строкой будет равна нулю. Не важно: ставится ли плюс перед строкой, умножается ли строка на число или происходит явное преобразования с помощью функций или (int).

Результат всегда будет один. И если применить функцию var_dump(), то результат будет int(0), в некоторых случаях и int(NaN) — Not a Number. Данное значение получается в ходе умножения числа на слово или за счет арифметических операций между символьными строками и числами.

Самым универсальным оператором преобразования числа в строку является «+», поставленный перед строкой: +»44″. Данная конструкция всегда переводит строку в число во всех языках семейства Cи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *