/
Программирование
/
Курс PHP
/

Явное преобразование типов

PHP: Явное преобразование типов

В реальных программах часто возникает ситуация, когда данные одного типа нужно превратить в другой. Это особенно актуально, например, при обработке ввода пользователя или данных из веб-форм. Там все приходит в виде строк, даже если вы ввели число.

Преобразование типов в PHP

PHP умеет преобразовывать типы автоматически — мы видели это в уроке про слабую типизацию. Но полагаться на неявные преобразования опасно. Когда вы точно знаете, какой тип хотите получить, лучше преобразовать значение явно. Для этого в PHP есть специальный синтаксис: перед значением в скобках указывается желаемый тип. Такая операция называется приведением типа (type casting). Явный код понятнее и предсказуемее.

Преобразование строки в число

Представим, что мы получили из формы строку '345', а нам нужно сложить это число с другим:

<?php

$number = (int) '345';
print_r($number + 5); // => 350

Оператор (int) получает строку и превращает ее в целое число.

<?php

$value = '0';
$convertedValue = (int) $value;
print_r($convertedValue); // => 0

print_r((int) '10'); // => 10
print_r((int) 3.5);  // => 3 (дробная часть отбрасывается)
'123'  ──(int)──→  123  ──(float)──→  123.0
                    │
                (string)
                    ↓
                  '123'

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

Если нужно превратить число в строку, используйте оператор (string):

<?php

print_r((string) 10);  // => '10'
print_r((string) 3.5); // => '3.5'

Это полезно, например, при формировании текстов, сообщений и вывода:

<?php

$age = 42;
print_r('Age: ' . (string) $age); // => Age: 42

Преобразование в число с плавающей точкой с помощью (float)

Если нужно число с десятичной точкой, используйте (float):

<?php

print_r((float) '2.7'); // => 2.7

Выражение (float) 5 тоже сработает: получится дробное число 5.0, хотя print_r() выведет его без дробной части — как 5.

Множественные преобразования

Приведение типа можно использовать и внутри составных выражений. В более сложных ситуациях встречаются множественные преобразования: (string) (5 + ((int) '4')). Порядок вычисления этого выражения следующий:

<?php

(int) '4';  // 4
5 + 4;      // 9
(string) 9; // '9'

На текущий момент мы знакомы только с несколькими типами, но приведение работает для любого типа.

Задание

Термометр показывает температуру с десятичной точкой. Программа должна вывести только целое значение с подписью.

У вас есть переменная:

<?php

$temperature = 36.6;

Напишите программу, которая:

  1. Преобразует температуру в целое число.
  2. Полученное число превратит в строку.
  3. Выведет эту строку на экран, добавив через пробел подпись °C.

Используйте операторы приведения типа (int) и (string).

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются