Как узнать тип php

Как узнать тип php

PHP поддерживает восемь простых типов данных (переменных):

Существуют также несколько :

Рассмотрим кратко перечисленные типы данных PHP.

Тип Boolean (двоичные данные)

Чтобы определить булев тип, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы.

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

Подробнее о булевых типах данных смотрите здесь.

Тип integer (целые числа)

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

Подробнее о типах данных смотрите здесь.

Тип float (числа с плавающей точкой)

Числа с плавающей точкой (они же числа двойной точности или действительные числа) могут быть определены при помощи любого из следующих синтаксисов:

Подробнее о типах данных смотрите здесь.

Тип string (строки)

Строка легко может быть обработана при помощи стандартных функций, можно также непосредственно обратиться к любому ее символу.

Пример строковой переменной:

Подробнее о типах данных смотрите здесь.

Тип array (массивы)

Индекс (ключ) служит для однозначной идентификации элемента внутри массива. В одном массиве не может быть двух элементов с одинаковыми индексами.

PHP позволяет создавать массивы любой сложности. Рассмотрим некоторые примеры:

Простой массив (список)

Ассоциативные массивы

В PHP индексом массива может быть не только число, но и строка. Причем на строку не накладываются ограничения: она может содержать пробелы, специальные символы и быть любой длины.

Массивы, индексами которых являются строки, называются ассоциативными массивами. Индексы ассоциативных массивов называются ключами. Пример ассоциативного массива:

Многомерные массивы

Многомерные массивы похожи на записи в языке Pascal или структуры в языке C.

Подробно о массивах и операциях с массивами вы можете узнать здесь

Тип object (объекты)

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

class foo
<
function do_foo ()
<
echo «Doing foo.» ;
>
>

Подробное рассмотрение объектов производится в разделе PHP и ООП

Тип resource (ресурсы)

Тип NULL («пустой» тип)

Переменная считается NULL если:


ей была присвоена константа NULL;

ей еще не было присвоено какое-либо значение;

она была удалена с помощью unset().

Псевдотип mixed (смешанный)

mixed говорит о том, что параметр может принимать множество (но не обязательно все) типов.

gettype(), например, принимает все типы PHP, тогда как str_replace() принимает строки и массивы.

Псевдотип number (числовой)

number говорит о том, что параметр может быть либо integer, либо float.

Псевдотип callback (обратного вызова)

Некоторые функции, такие как call_user_func() или usort() принимают в качестве параметра определенные пользователем callback-функции. Callback-функции могут быть не только простыми функциями, но также методами объектов, включая статические методы классов.

PHP-функция передается просто как строка ее имени. Вы можете передать любую встроенную или определенную пользователем функцию за исключением array(), echo(), empty(), eval(), exit(), isset(), list(), print() и unset().

Приведем примеры callback функций:

// простой пример callback
function my_callback_function () <
echo ‘hello world!’ ;
>
call_user_func ( ‘my_callback_function’ );

// примеры callback-метода
class MyClass <
function myCallbackMethod () <
echo ‘Hello World!’ ;
>
>

Мы рассмотрели достаточно поверхностно типы данных PHP. Для более подробного ознакомления с этим вопросом посетите подраздел «Типы данных PHP».

Источник

Типы данных в 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

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

Строка

Строки в PHP размещаются в одинарных или двойных кавычках. Главное различие в том, что в двойные кавычки можно подставить значение переменной, например:

Другие различия будут рассмотрены в отдельном уроке.

Для PHP 7+ 64-битных сборок нет ограничений на максимальную длину строки, для остальных она составляет 2Гб.

Булев тип

Значение булева типа может содержать в себе только true или false (истина или ложь).

Булев тип удобно использовать для всяких флажков и статусов вроде отправлено/не отправлено, просмотрено/не просмотрено и т.д.

Целое число

Целые числа имеют следующие минимальные и максимальные значения:

Помимо десятичной системы счисления, PHP также поддерживает двоичную, восьмеричную и шестнадцатеричную:

Дробное число

Разделителем дробной части в PHP является точка:

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

Проблема в том, что дробные числа имеют ограниченную точность, что в некоторых ситуациях может приводить к неожиданным результатам:

Оператор сравнения == возвращает true или false если два значения соответственно равны или не равны.

Поэтому когда нужно производить какие-то вычисления, где важна абсолютная точность, нужно использовать специальные функции произвольной точности:

Массив

Массивы будут подробно рассмотрены в уроке Массивы в PHP.

Объект

Объекты будут подробно рассмотрены в будущем.

Ресурс

В примере выше функция fopen возвращает ссылку на файл, которую затем можно использовать вместе с другими функциями для управления файлом.

NULL означает отсутствие значения:

Как определить тип переменной

Получить тип переменной можно с помощью функции gettype() :

Источник

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

Объявление переменной

Типы данных

В отличии от большинства других языков программирования, язык РНР является слаботипизированным, что в свою очередь позволяет не требовать строгого задания типа при их объявлении. В ходе выполнения программы тип переменной может быть изменен неявным образом без специальных преобразований, что позволяет разработчику практически не задумываться о типах данных.

Опишем основные типы данных, которые поддерживаются РНР:

Boolean. Логический тип, способный принимать лишь два значения: True (истина) и False (ложь).

String. Строковый тип. Может хранить строку, максимальный размер которой составляет 2 Гбайт.

Array. Массив. Это объединение нескольких переменных под одним именем, обращаться к отдельным переменным которых можно при помощи индекса массива.

Object. Объект. Это конструкция, объединяющая несколько разнотипных переменных и методы их обработки.

Resource. Дескриптор, позволяющий оперировать тем или иным ресурсом, доступ к которому осуществляется при помощи библиотечных функций. Дескрипторы применяются при работе с файлами, базами данных, динамическими изображениями и т.д.

Null. Специальный тип, который сигнализирует о том, что переменная не была инициализирована.

Callable|Callback. Некоторые функции РНР могут принимать в качестве аргументов другие функции, которые называются функциями обратного вызова. Переменные данного типа содержат ссылки на такие функции.

Целые числа

Поскольку большинство прикладных задач носит исключительно арифметический характер, наиболее распространенными в программировании являются целые числа. Кроме того, данный тип данных наиболее быстродействующий.

Объявление целочисленных переменных может осуществляться несколькими способами:
Положительное целое число объявляется без указания перед ним знака плюс. Для объявления отрицательного числа необходимо перед ним указать символ минуса. По умолчанию числа задаются в десятичной системе счисления, однако в РНР можно объявлять переменные в восьмеричной и шестнадцатеричной системах счисления. Более подробно о целых числах и системах счисления можно узнать из статьи Целые числа (Integer)

Вещественные числа

Вещественные числа (Float или Double) имеют очень большой интервал, выйти за который практически нереально. Существуют две формы записи вещественного числа: стандартная и экспоненциальная.

При выводе под число с плавающей точкой отводится 12 символов, это значение может быть изменено при помощи директивы Precision в конфиrурационном файле php.ini.

Объявление вещественных чисел:
Более подробно о вещественных числах можно узнать из статьи Числа с плавающей точкой (Float)

Логический тип

Строки

Кавычки

Строки и строковые переменные создаются путем заключения той или иной фразы в кавычки. В РНР имеется возможность применять несколько типов кавычек, каждый вид которых имеет собственные особенности.

Двойные кавычки («. «) позволяют вместо переменных РНР подставлять их значения. Такая подстановка называется интерполяцией.
Одиночные кавычки (. ) не позволяют подставлять значение переменных.

Применение обратного слеша с рядом другими символами интерпретируется особым образом. Наиболее часто используются символы перевода строки (\n), возврат каретки (\r), символ табуляции (\t), обратный слеш (\\), двойная () и одинарная кавычка (\’). Размещение переменных и специальных символов (за исключением \’) в одиночных кавычках не приводит к их специальной интерпретации.

Хорошим тоном является указание границ переменной внутри строки обрамлением фигурными скобками (<. >):

Источник

is_numeric

(PHP 4, PHP 5, PHP 7, PHP 8)

is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число

Описание

Определяет, является ли данная переменная числом или строкой, содержащей число.

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

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

Примеры

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

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

Пример #2 Пример использования is_numeric() с пробелом

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

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

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

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

User Contributed Notes 40 notes

If you want the numerical value of a string, this will return a float or int value:

Note that the function accepts extremely big numbers and correctly evaluates them.

So this function is not intimidated by super-big numbers. I hope this helps someone.

PS: Also note that if you write is_numeric (45thg), this will generate a parse error (since the parameter is not enclosed between apostrophes or double quotes). Keep this in mind when you use this function.

for strings, it return true only if float number has a dot

is_numeric( ‘42.1’ )//true
is_numeric( ‘42,1’ )//false

I think that is best check solution if u want to create real calculator for example 🙂

is_number ( 12 ); // true
is_number (- 12 ); // true
is_number (- 12.2 ); // true
is_number ( «12» ); // true
is_number ( «-124.3» ); // true
is_number ( 0.8 ); // true
is_number ( «0.8» ); // true
is_number ( 0 ); // true
is_number ( «0» ); // true
is_number ( NULL ); // false
is_number ( true ); // false
is_number ( false ); // false
is_number ( «324jdas32» ); // false
is_number ( «123-» ); // false
is_number ( 1e7 ); // true
is_number ( «1e7» ); // true
is_number ( 0x155 ); // true
is_number ( «0x155» ); // false
?>

/* This function is not useful if you want
to check that someone has filled in only
numbers into a form because for example
4e4 and 444 are both «numeric».

I used a regular expression for this problem
and it works pretty good. Maybe it is a good
idea to write a function and then to use it.

$input_number = «444»; // Answer 1
$input_number = «44 «; // Answer 2
$input_number = «4 4»; // Answer 2
$input_number = «4e4»; // Answer 2
$input_number = «e44»; // Answer 2
$input_number = «e4e»; // Answer 2
$input_number = «abc»; // Answer 2
*/
$input_number = «444» ;

Referring to previous post «Be aware if you use is_numeric() or is_float() after using set_locale(LC_ALL,’lang’) or set_locale(LC_NUMERIC,’lang’)»:

This is totally wrong!

This was the example code:

——
set_locale(LC_NUMERIC,’fr’);
is_numeric(12.25); // Return False
is_numeric(12,25); // Return True
is_float(12.25); //Return False
is_float(12,25); //Return True
——

— set_locale() does not exist, you must use setlocale() instead
— you have to enclose 12,25 with quotes; otherwise PHP will think that
the function gets _two_ arguments: 12 and 25 (depending on PHP version and setup you may additionally get a PHP warning)
— if you don’t enclose 12,25 with quotes the first argument will be the inspected value (12), the second value (25) is discarded. And is_numeric(12) and is_float(12) is always TRUE

—-
setlocale(LC_NUMERIC,’fr’);
is_numeric(12.25); // Return True
is_numeric(«12,25»); // Return False
is_float(12.25); //Return True
is_float(«12,25»); //Return False
—-

Remarks:
— is_float(12.25) is _always_ TRUE, 12.25 is a PHP language construct (a «value») and the way PHP interpretes files is definitely _not_ affected by the locale
— is_float(«12,25») is _always_ FALSE, since is_float (other than is_numeric): if the argument is a string then is_float() always returns FALSE since it does a strict check for floats

And the corrected example shows: you get the _same_ results for every possible locale, is_numeric() does not depend on the locale.

The solution is pretty simple and no subroutines or fancy operations are necessary to make the ‘is_numeric’ function usable for form entry checks:

Simply strip off all (invisible) characters that may be sent along with the value when submitting a form entry.

Just use the ‘trim’ function before ‘is_numeric’.

Two simple functions using is_numeric:

?>
And here is the result:
1: odd? TRUE
0: odd? FALSE
6: odd? FALSE
«italy»: odd? FALSE
null: odd? FALSE

1: even? FALSE
0: even? TRUE
6: even? TRUE
«italy»: even? FALSE
null: even? FALSE

If you want detect integer of float values, which presents as pure int or float, and presents as string values, use this functions:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *