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