PHP: как узнать тип переменной: 2 способа
Оглавление:
Какие бывают типы данныхЧто такое gettype
Что такое settype. Как назначить переменной новый тип
Какие типы данных существуют в PHP
Типы данных в языке PHP используются для хранения различных видов данных или значений. В последних версиях язык поддерживает 8 встроенных типов данных. Все их можно разделить на три вида:
1. «Скалярные» или простые типы.
2. Составные типы.
3. Специальные типы.
Простые типы
В PHP существует четыре простых типа данных:
- булев (boolean),
- целое число (integer),
- дробное число (float),
- строка (string).
Сложные или составные типы
Также в PHP есть два основных типа данных:
- массив (array),
- объект (object).
Специальные типы
В языке предусмотрено два таких типа данных:
- ресурс (resource),
- NULL.
Часто нужно менять данные с одного типа на другого. Или, например, просто узнавать тип данных для какого-либо объекта. В этих и множестве других случаев помогут две функции: gettype и settype.
Рассмотрим их подробнее.
gettype. Пример
Функция gettype() возвращает тип данных переменной, переданной ей в качестве аргумента. При этом она может получить вообще любой тип переменной.
Необходимо сохранить возвращаемое значение в переменной и вывести его на экран. Например, вот так
<?php
$ini = 3;
echo gettype($ini) ."
";
$mini = 3.2;
echo gettype($mini) ."
";
$dini = "Privet";
echo gettype($dini) ."
";
$bini = array();
echo gettype($bini) ."
";
$gini = array("cat", "dog", "horse");
echo gettype($gini) ."
";
$tini = NULL;
echo gettype($tini) ."
";
$zini = false;
echo gettype($zini) ."
";
?>
Вывод:
Вывод примера
Подробнее о функции
Функция gettype() — это встроенная функция в PHP для получения типа переменной.
Для проверки типа текущей переменной используется следующий синтаксис:
string gettype($var)
Параметры: принимает один аргумент $var. Это название переменной, тип которого мы и хотим проверить.
Возвращаемое значение: строка, описывающая тип данных:
- boolean.
- NULL.
- integer.
- resource.
- double (возвращается, если аргумент является дробным числом).
- object.
- array.
- unknown type (неизвестный тип).
Пример использование функции ниже:
<?php
// Программа покажет суть функции gettype()
$var1 = true; // булево
$var2 = 3; // целое
$var3 = 5.6; // дабл
$var4 = "Abc3462"; // строка
$var5 = array(1, 2, 3); // массив
$var6 = new stdClass; // объект
$var7 = NULL; // null
$var8 = tmpfile(); // ресур
echo gettype($var1)."\n";
echo gettype($var2)."\n";
echo gettype($var3)."\n";
echo gettype($var4)."\n"
echo gettype($var5)."\n";
echo gettype($var6)."\n";
echo gettype($var7)."\n";
echo gettype($var8)."\n";
?>
Вывод:
Вывод примера
settype. Как установить тип для переменной
settype() используется для изменения типа переменной — с текущего на необходимый. Функция принимает два параметра:
- Имя переменной, которую нужно преобразовать.
- Тип, к которому нужно преобразовать переменную.
Сразу пример:
<?php
$ini = 7;
settype($ini,'string');
echo gettype($ini)."
";
$mini = 4.3;
settype($mini,'integer');
echo gettype($mini) . "
";
$dini = "Hi bears";
settype($dini,'array');
var_dump($dini);
echo"
";
echo gettype($dini) . "
";
$gini = array("red", "green", "blue");
settype($gini,'string');
echo gettype($gini) . ";";
?>
Вывод:
string
integer
array(1) { [0]=> string(12) "Hi bears" }
array
string;
Подробнее о функции
Функция settype() применяется для того, чтобы установить тип переменной или изменить тип уже существующей.
Переменная — один из самых частых объектов, которым оперирует программист в PHP и других языках.
Синтаксис:
boolean settype($variable_name, $type)
Параметры: принимает два параметра:
- $variable_name: имя переменной.
- $type: строка с именем устанавливаемого типа. Возможные значения: "boolean" или "bool", "integer" или "int", "float" или "double", "string", "array", "object", "null".
Возвращаемое значение: TRUE, если преобразование типов переменной прошло успешно, и FALSE — в обратном случае.
<?php
// Программа для иллюстрации функции settype()
$var1 = "234xyz";
$var2 = 4;
$r = true;
settype($var1, "integer");
settype($var2, "float");
settype($r, "string");
echo $var1."\n";
echo $var2."\n";
echo $r."\n";
?>
Вывод:
234
4
2
Бонус. Специальные функции
- is_object($a): вернет true, если $a содержит ссылку на какой то объект.
- is_bool($a): вернет true, если в $a хранится булево значение.
- is_integer($a): вернет true, если в $a записано целое число.
- is_array($a): вернет true, если $a является массивом.
- is_string($a): вернет true, если $a содержит строку.
- is_null($a): вернет true, если $a представляет null.
- is_double($a): вернет true, если $a является дробным числом.
- is_scalar($a): вернет true, если $a является простым типом данных, например, представляет из себя логическое значение или строку.
- is_numeric($a): возвращает true, если $a является действительным, либо же целым числом. Также true будет возвращен в случае, когда переменная представляет из себя строковое представление числа.
Немного о преобразовании
PHP умеет автоматически преобразовывать разные типы переменных друг в друга. Но возможность задать явное преобразование также предусмотрена в языке.
Изучение типов переменных принесет вам пользу в долгосрочной перспективе. Ну а чтобы пользы было ещё больше — успейте записаться на курс бэкенд-разработчик от Loft.
Допустим нам нужно изменить "false" в int. Чтобы это сделать вы можете использовать, например, такой подход:
$boolVar = false;
$intVar = (int)$boolVar; // 0
echo "boolVar = $boolVar
intVar = $intVar";
Обратите внимание: значение находится внутри переменной $intVar.
Вы можете задавать явное преобразование в следующие типы объектов:
- float
- object
- int
- array
- string
- bool