PHP скрипты

MySQL

Apache

phpMyADmin

4.8: Изменение типа данных

Главная Страница » Книги по PHP » Самоучитель PHP 5 для чайников с примерами » Изменение типа данных в PHP

В РНР имеется возможность изменять тип данных переменной. В этом случае происходит преобразование типов данных из одного в другой (листинг 4.13).

Листинг 4.13. Изменение типа данных.

‹html›
‹head›
‹title›Изменение типа данных‹/title›
‹/head›
‹body›
‹?php
$test_var = 12.63; // присваиваем значение 12.63
echo gettype ($test_var); // выводит double
echo "‹br›";
echo $test_var; // выводит 12.63
echo "‹br›";
settype ($test_var, string); // устанавливаем тип String
echo gettype ($test_var); // выводит string
echo "‹br›";
echo $test_var; // выводит 12.63
echo "‹br›";
settype ($test_var, integer); // устанавливаем тип
echo gettype ($test_var); // выводит integer
echo "‹br›";
echo $test_var; // выводит 12
echo "‹br›";
settype ($test_var, boolean); // устанавливаем тип
echo gettype ($test_var); // выводит boolean
echo "‹br›";
echo $test_var; // выводит 1
echo "‹br›";
?›
‹/body›
‹/html›

Итак, вначале мы присвоили значение переменной $test_var  12.63, и автоматически ее тип стал Double, о чем свидетельствует вывод результата функции gettype() в окне браузера. Затем преобразовали тип переменной в String и опять вывели значение (теперь уже строка   12.63). При переходе в Integer дробная часть отбрасывается и остается 12 (обратите внимание, что значение не округляется до большего целого!). И, наконец, при изменении типа переменной на Boolean результат становится 1.

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

Преобразование в Boolean

Значения, преобразуемые в FALSE:

  1. целое число 0;
  2. дробное число 0.0;
  3. пустая строка или строка 0.

Любые другие значения преобразуются в TRUE.

Преобразование в Integer

Преобразование осуществляется таким образом:

  1. значение FALSE преобразуется в 0, a TRUE - в 1;
  2. у вещественных чисел отбрасывается дробная часть (смотрите пример выше);
  3. если строка не начинается с цифры, то она преобразуется в 0. Ина¬че будет указанное целое число (листинг 4.14).

Листинг 4.14. Особенности преобразования в Integer.

‹html›
‹head›
‹title›Особенности преобразования в Integer‹/title›
‹/head›
‹body›
‹?php
$test_var = "num10";
settype ($test_var, integer);
echo $test_var; // выводит 0
echo "‹br›";
$test_var = "10num";
settype ($test_var, integer);
echo $test_var; // выводит 10
?>
‹/body›
‹/html›

Преобразование в String

Значение FALSE преобразуется в пустую строку, a TRUE - в 1. Любые числа преобразуются в строку, содержащую цифры этих чисел, включая их степень.

Приведение типов данных

Приведение типов данных используется в тех случаях, когда изменение типа переменной не требуется (листинг 4.15).

Листинг 4.15. Приведение типов данных.

‹html›
‹head›
‹title›Приведение типов данных‹/title›
‹/head›
‹body›
‹?php
$test_var = 12.63;
echo gettype ($test_var); // выводит double
echo "‹br›";
echo (integer)$test_var; // выводит 12
echo "‹br›";
echo gettype ($test_var); // выводит double
?›
‹/body›
‹/html›

Обратите внимание, что преобразования типов данных функцией settype() и рассмотренной конструкцией эквивалентны. Отличие лишь в том, что settype() изменяет тип переменной, а рассмотренная конструкция создает временную копию требуемого типа.

Поделиться с друзьями