Приведение к целому числу строки в PHP (int)
Иногда данные приходят так, что числовое значение в виде строкового, а с ним необходимо произвести математическую операцию или еще что-то сделать, но в итоге нужно чтобы это было целое число. В PHP достаточно просто это сделать, при помощи функции (int). Ниже пример кода, где строка «100» приводится к числу:
<?php // объявляем переменную с строковым значением 100 $var = '100'; echo var_dump($var); // Приводим к числу $var = (int)$var; echo var_dump($var); ?>
В результате мы получим такой вывод:
string(3) '100' int(100)
Данная функция работает с целыми числами, если строка будет например такая: «100,99» то что будет после точки или запятой, будет обрезано и мы опять же получим 100, ниже пример и результат. Чтобы получить из строки, число с плавающей точкой, необходимо использовать функцию floatval()
// объявляем переменную с строковым значением 100,99 $var = '100,99'; echo var_dump($var); // Приводим к числу $var = (int)$var; echo var_dump($var);
Теперь результат будет таким:
string(6) '100,99' int(100)
Данную функцию также можно применить, если строка начинается с цифр и содержит в себе строчные символы, пример:
// объявляем переменную с строковым значением 100 Попугаев $var = '100 Попугаев'; echo var_dump($var); // Приводим к числу $var = (int)$var; echo var_dump($var);
Результат:
string(20) '100 Попугаев' int(100)
То есть, все что после числа также обрезается и приводится в итоге к числу.
Тут все ясно, но что будет, если строка просто содержит символы, но начинается не с цифр. Пример:
// объявляем переменную с строковым значением На корабле 100 Попугаев $var = 'На корабле 100 Попугаев'; echo var_dump($var); // Приводим к числу $var = (int)$var; echo var_dump($var);
Результат:
string(40) 'На корабле 100 Попугаев' int(0)
В итоге, мы не получим приведения к числу.