Как узнать тип данных php
Типы данных в PHP
Что такое типы данных
Каждая переменная и каждое значение в PHP имеет свой тип данных:
Типы данных в PHP
В PHP существуют следующие основные типы данных:
Строка
Строки в PHP размещаются в одинарных или двойных кавычках. Главное различие в том, что в двойные кавычки можно подставить значение переменной, например:
Другие различия будут рассмотрены в отдельном уроке.
Для PHP 7+ 64-битных сборок нет ограничений на максимальную длину строки, для остальных она составляет 2Гб.
Булев тип
Значение булева типа может содержать в себе только true или false (истина или ложь).
Булев тип удобно использовать для всяких флажков и статусов вроде отправлено/не отправлено, просмотрено/не просмотрено и т.д.
Целое число
Целые числа имеют следующие минимальные и максимальные значения:
Помимо десятичной системы счисления, PHP также поддерживает двоичную, восьмеричную и шестнадцатеричную:
Дробное число
Разделителем дробной части в PHP является точка:
С дробными числами существует проблема, характерная не только для PHP, но и для любых других языков, где используется двоичное представление чисел с плавающей точкой.
Проблема в том, что дробные числа имеют ограниченную точность, что в некоторых ситуациях может приводить к неожиданным результатам:
Оператор сравнения == возвращает true или false если два значения соответственно равны или не равны.
Поэтому когда нужно производить какие-то вычисления, где важна абсолютная точность, нужно использовать специальные функции произвольной точности:
Массив
Массивы будут подробно рассмотрены в уроке Массивы в PHP.
Объект
Объекты будут подробно рассмотрены в будущем.
Ресурс
В примере выше функция fopen возвращает ссылку на файл, которую затем можно использовать вместе с другими функциями для управления файлом.
NULL означает отсутствие значения:
Как определить тип переменной
Получить тип переменной можно с помощью функции gettype() :
Типы данных в PHP
Строка текста, целое число или число с дробной частью – всё это разные типы данных.
Раличные типы данных занимают различный объём памяти и обработка разных типов выполняется по разному. Поэтому некоторые языки программирования требуют от программиста, чтобы он заранее объявил, для какого типа данных предназначена та или иная переменная.
PHP не имеет таких строгих требований по типам данных, то есть он будет обрабатывать переменную в зависимости от того, какого типа значение в неё записано. Такой подход имеет как достоинства, так и недостатки. С одной стороны, программист может использовать переменные гибко, храня в них данные, необходимые в настоящий момент. Но, с другой стороны, такая свобода действия может привести к появлению ошибок, которые трудно обнаружить, особенно в больших программах, когда в переменной записано совсем не то, что ожидает найти там программист.
В таблице перечисленны типы данных, поддерживаемые PHP.
Как узнать тип данных в PHP
В следующем примере показано, как с помощью функции gettype() проверяется тип одной и той же переменной, которой всякий раз присваивают новое значение.
Ксати, узнать тип переменной можно также при помощи var_dump, она используется чаще при написании реальных проектов, а именно для поиска ошибок, так как предоставляет больше данных о массивах и объектах. Но на этапе изучения программирования чтобы освоить типы данных в PHP функция gettype() вполне подойдёт.
Немного подробнее про типы данных в PHP
Тип integer
Тип double
Размер числа с плавающей точкой double зависит от платформы, на которой работает PHP. Максимально возможное значение, как правило, составляет
1.8e308 с точностью около 14 десятичных цифр. Но, опять же, на моей практике такие точные вычесления не производятся.
Тип string (строки)
Давайте рассмотрим пример, как работают с переменными строки в разных кавычках:
Строка обрамлённая двойными кавычками может содержать в себе двойные кавычки, которые нужно вывести в браузер. В этом случае перед ними ставят символ » \ «. Например:
На самом деле, работа со строками в PHP – отдельная большая тема.
Тип boolean
В этом примере я использовал функцию var_dump, о которой упоминал ранее. Также функции gettype я передал не переменную, а выражение, так можно делать.
Логические выражения, что есть истина и ложь в PHP – самом деле тема отдальной статьи. Если вы хотите освоить программирование на PHP, то вы обязательно должны хорошо знать этот тип данных.
Тип NULL
Тип NULL указывает, что переменная не инициализирована. Давайте попробуем вывести на экран тип переменной, которой не было присвоено значение.
Остальные типы данных в PHP
Остальные типы данных: массивы в PHP, объекты в PHP и ресурсы требуют отдельного углублённого изучения.
PHP проверка на тип данных
В этой статье вы узнаете как и зачем проверяют на тип данных (как правило в переменной) в PHP.
Как проверить тип переменной в PHP
В ваших скриптах может возникнуть необходимость на дополнительную проверку и иногда, это проверка на какой-то определенный тип. Чаще всего, смотрим, есть ли хоть какого-то значение в переменной:
Вернемся к нашей теме. Чтобы проверить на типы данных существуют следующие проверки:
Можем проверить на массив, на тип булево (true или false), число с плавающей точкой, обычное число, строку и объект.
Эти проверки помогут вам в ваших скриптах. Например, стоит задача: если приходит целое число, то мы ничего не делаем, а если с плавающей точкой то округляем в какую-то сторону на «столько-то» знаков.
Также, бывают случаи, когда в переменную может записываться как число, так и массив, и нам нужно предусмотреть все эти варианты.
Есть также проверка и для NULL:
Вот такие вот простые и полезные вещи могут улучшить наш код 🙂
автор: Dmitriy
Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.
— Создание сайтов на 1С-Битрикс любой сложности
— Вёрстка макетов Figma, Photoshop, Zeplin
— Поддержка проектов на Битриксе
— Разработка нового функционала для сайта
— Парсинг данных
— Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
— Интеграция по API со сторонними сервисами
и многое другое
Работа с данными в PHP
Основы работы с данными в PHP
Переменныей в PHP могут быть:
В PHP не нужно для переменных устанавливать тип, достаточно просто присвоить значение переменной.
Функции gettype() в PHP с примерами
Попробуйте подставить в функцию gettype() разные переменные, чтобы этот материал отложился у вас в памяти. Тип данных object мы пока трогать не будем.
Функции settype() в PHP с примерами
Функции settype() возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Временное преобразование типа переменной
Можно временно преобразовать тип переменной. Для этого в выражении нужно указать требуемый тип в скобках. Вот пример:
Преобразование массивов в строки и наоборот
Рассмотрим что происходит если строку преобразовать в массив:
Тут всё просто, создан массив с единственным элементом, состоящим из строки.
Попробуйте сделать тоже самое с типом данных integer самостоятельно.
Автоматическое преобразование типов данных в PHP
А теперь самостоятельно попробуйте заменить строку «12» на «3.34».
Далее, попробуем применить оператор конкатенации строк к этим же переменным.
Преобразование типов переменных в PHP происходит в зависимости от контекста. Когда использовали арифметический оператор, предназначенный для работы с числами, строковую переменную PHP автоматически преобразовал в число. При использовании оператора конкатенации строк число было автоматически преобразовано в строку.
Ещё пример преобразования типов данных в PHP:
Правило: если строка начинается с числа, то при преобразовании она преобразуется в число. Это относится к целым и вещественным числам. Если в начале строки нет числа, то она преобразуется в число ноль.
При использовании инкремента и декремента строка преобразовывается по определённым правилам. Вот простой пример:
Тут строки можно преобразовать в числа без труда. А теперь другой пример.
В этом примере последняя буква поменялась с «о» на «p», то есть единица была добавлена к коду символа.
Давайте применим к строке другой метод инкрементации:
В этом примере арифметический оператор » += » сначала преобразовал строку «hello» в число ноль, затем прибавил к нему единицу.
Обратите внимание: при при обработке выражения с выполнением автоматического преобразования ни один операнд не меняется. В операции используется преобразованная копия переменной.
Проверка типов
Про функцию gettype() вы уже знаете, она возвращает строку с типом данных. Иногда нужно проверить переменную на соответствие одному типу. Для этого есть следующие функции:
Все эти функции возвращают true или false в зависимости от результатов проверки.
Вторая проверка выглядит более компактно.
Ещё функции изменения типа данных
Кроме функции settype() в PHP есть ещё функции для преобразования типа.
Как проверить целый тип данных в php?
На входе есть строка, которая может содержать любые символы. Как проверить что-бы там было ТОЛЬКО ЦЕЛОЕ ЧИСЛО?
Окружение: PHP7.1, Laravel 5.1
Неверное сравнение. У меня получились результаты PHP 7.1 примерно такие: 0.005 против 0.01 (регулярки) т.е. вдвое быстрее
Потому что код для первого примера нужно изменить:
1) Почему с регулярками строка в одинарных кавычках, а при сравнении в двойных?
2) Зачем else если внутри if есть return?
jasonOk: вот ваш способ сравнения только целых чисел в php 7.0.15
if 0.120016
regexp 0.110514
на строках все почти также.. но на float значениях регулярка сдала позиции
pashted: больше чем 0.0068 при сравнении у меня не выходит.
С регулярками самый минимум — 0.011
Если вы заметили, ТС указал версию PHP 7.1