Многие операторы ожидают получить операнды определенного типа. Например, оператор сложения чисел (+) требует, чтобы оба числа были одинакового типа. Переменные в языке РНР могут хранить целые числа, числа с плавающей точкой, строки и т.п. При необходимости РНР автоматически преобразовывает значения одного типа в другой.
Преобразование значения одного типа в другой называется приведением типа (в англ. литературе - casting). Используемое неявное приведение
типа в РНР называется манипуляцией с типом (type juggling). Правила
неявного приведения типа для арифметических операторов представлены ниже:
- Если 1-й операнд целое число, а 2-й - число с плавающей запятой, то целое число будет преобразовано в число с плавающей запятой и результатом также будет число с плавающей запятой. Пример:
$x = 1 + 3.14;
Здесь результатом будет вещественное число 4,14, а переменная $x будет вещественного типа.
- Если 1-й операнд целое число, а 2-й - строка, то строка будет преобразована в число, и результатом также будет число. Если значение после преобразования строки будет вещественным числом, то произойдёт преобразование в вещественное число и результатом также будет число с плавающей запятой. Пример:
$y = 1 + "10"; # $y = 11
$z = 1 + "1.0"; # $z = 2.0
- Если 1-й операнд целое число с плавающей запятой, а 2-й - строка, то строка будет преобразована в вещественное число и результатом также будет число с плавающей запятой.
Некоторые другие операторы ожидают операнды других типов, поэтому у них есть свои собственные правила приведения типов. Например, оператор конкатенации строк перед конкатенацией преобразует в строку оба операнда:
$y . 13
Здесь мы пытаемся объединить два числа в одну строку. И если переменная $y имеет значение 11, то результатом будет строка "1113".
Вы можете использовать строку везде, где РНР ожидает увидеть число. При этом строка будет преобразована в число. Строка должна начинаться с целого числа или с числа с плавающей запятой. Если в строке не было найдено число, строка преобразуется в число 0. Если строка содержит точку (.) или букву Е (или е), строка будет преобразована в число с плавающей точкой. Точнее, обработка строки происходит слева направо и заканчивается на первом символе, который не может быть обработан логически. Например:
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.