Php проверить тип значения

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

В этой статье вы узнаете как и зачем проверяют на тип данных (как правило в переменной) в PHP.

Как проверить тип переменной в PHP

В ваших скриптах может возникнуть необходимость на дополнительную проверку и иногда, это проверка на какой-то определенный тип. Чаще всего, смотрим, есть ли хоть какого-то значение в переменной:

В этом языке программирования типизацию называют динамической (также, можно встретить термин “слабая типизация“). Это означает, что строка может стать числом, если мы применим оператор сложения.
За это, кстати говоря, у PHP так много ненавистников 🙂 .

Вернемся к нашей теме. Чтобы проверить на типы данных существуют следующие проверки:

if (is_array($arr)) < // переменная является массивом >/* is_bool() - Проверяем, является ли переменная булевой is_int() - Проверяем, является ли переменная целым числом is_numeric() - Проверяем, является ли переменная числом или строкой, содержащей число is_float() - Проверим, является ли переменная числом с плавающей точкой is_string() - Проверим, является ли переменная строкой is_object() - Проверим, является ли переменная объектом */

Можем проверить на массив, на тип булево (true или false), число с плавающей точкой, обычное число, строку и объект.

Эти проверки помогут вам в ваших скриптах. Например, стоит задача: если приходит целое число, то мы ничего не делаем, а если с плавающей точкой то округляем в какую-то сторону на “столько-то” знаков.

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

Есть также проверка и для NULL:

Вот такие вот простые и полезные вещи могут улучшить наш код 🙂

Источник

Читайте также:  Decimal или float python

gettype

Возвращает тип PHP-переменной value . Для проверки типа переменной используйте функции is_* .

Список параметров

Возвращаемые значения

  • «boolean»
  • «integer»
  • «double» (по историческим причинам в случае типа float возвращается «double» , а не просто «float» )
  • «string»
  • «array»
  • «object»
  • «resource»
  • «resource (closed)» с PHP 7.2.0
  • «NULL»
  • «unknown type»

Список изменений

Версия Описание
7.2.0 Для закрытых ресурсов теперь возвращается ‘resource (closed)’ . Ранее для закрытых ресурсов возвращалось ‘unknown type’ .

Примеры

Пример #1 Пример использования gettype()

$data = array( 1 , 1. , NULL , new stdClass , ‘foo’ );

foreach ( $data as $value ) echo gettype ( $value ), «\n» ;
>

Результатом выполнения данного примера будет что-то подобное:

integer double NULL object string

Смотрите также

  • get_debug_type() — Возвращает имя типа переменной в виде, подходящем для отладки
  • settype() — Задаёт тип переменной
  • get_class() — Возвращает имя класса, к которому принадлежит объект
  • is_array() — Определяет, является ли переменная массивом
  • is_bool() — Проверяет, является ли переменная булевой
  • is_callable() — Проверяет, что значение может быть вызвано как функция в текущей области видимости
  • is_float() — Проверяет, является ли переменная числом с плавающей точкой
  • is_int() — Проверяет, является ли переменная целым числом
  • is_null() — Проверяет, является ли значение переменной равным null
  • is_numeric() — Проверяет, является ли переменная числом или строкой, содержащей число
  • is_object() — Проверяет, является ли переменная объектом
  • is_resource() — Проверяет, является ли переменная ресурсом
  • is_scalar() — Проверяет, является ли переменная скалярным значением
  • is_string() — Проверяет, является ли переменная строкой
  • function_exists() — Возвращает true, если указанная функция определена
  • method_exists() — Проверяет, существует ли метод в данном классе

Источник

PHP: как узнать тип переменной: 2 способа

Типы данных в языке PHP используются для хранения различных видов данных или значений. В последних версиях язык поддерживает 8 встроенных типов данных. Все их можно разделить на три вида:

Читайте также:  Python tar gz pack

1. «Скалярные» или простые типы.

Простые типы

В PHP существует четыре простых типа данных:

  • булев (boolean),
  • целое число (integer),
  • дробное число (float),
  • строка (string).

Сложные или составные типы

Также в PHP есть два основных типа данных:

Специальные типы

В языке предусмотрено два таких типа данных:

Часто нужно менять данные с одного типа на другого. Или, например, просто узнавать тип данных для какого-либо объекта. В этих и множестве других случаев помогут две функции: gettype и settype.

gettype. Пример

Функция gettype() возвращает тип данных переменной, переданной ей в качестве аргумента. При этом она может получить вообще любой тип переменной.

Необходимо сохранить возвращаемое значение в переменной и вывести его на экран. Например, вот так

"; $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 для получения типа переменной.

Для проверки типа текущей переменной используется следующий синтаксис:

Параметры: принимает один аргумент $var. Это название переменной, тип которого мы и хотим проверить.

Возвращаемое значение: строка, описывающая тип данных:

  • boolean.
  • NULL.
  • integer.
  • resource.
  • double (возвращается, если аргумент является дробным числом).
  • object.
  • array.
  • unknown type (неизвестный тип).

Пример использование функции ниже:

Вывод примера

settype. Как установить тип для переменной

settype() используется для изменения типа переменной — с текущего на необходимый. Функция принимает два параметра:

  1. Имя переменной, которую нужно преобразовать.
  2. Тип, к которому нужно преобразовать переменную.
"; $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;

Подробнее о функции

Читайте также:  Html form to post json

Функция settype() применяется для того, чтобы установить тип переменной или изменить тип уже существующей.

Переменная — один из самых частых объектов, которым оперирует программист в PHP и других языках.

boolean settype($variable_name, $type)

Параметры: принимает два параметра:

  • $variable_name: имя переменной.
  • $type: строка с именем устанавливаемого типа. Возможные значения: «boolean» или «bool», «integer» или «int», «float» или «double», «string», «array», «object», «null».

Возвращаемое значение: TRUE, если преобразование типов переменной прошло успешно, и FALSE — в обратном случае.

Бонус. Специальные функции

  • 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.

Вы можете задавать явное преобразование в следующие типы объектов:

Источник

Оцените статью