Приведение к целому числу строки в 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)

В итоге, мы не получим приведения к числу.

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

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



Рекламный блок, для развития проекта