Типы данных в PHP

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

Не можете сделать правильные настройки вконтакте — в этом вам поможет виде по ссылке https://www.youtube.com/channel/UCpr0P7SO1s1UgCbfSv5bTFQ.

В данной статье мы рассмотрим только четыре:

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

Ну и начинаем рассматривать типы данных PHP:
Тип BOOLEAN.

Простой тип данных обозначающий истинность значения — это TRUE — истина или FALSE — ложь. TRUE и FALSE регистронезависимы. В принципе, это все что нужно знать про этот тип. Однако, для общего развития, скажу, что когда мы отдаем какие-то данные в браузер, естественно браузер понятия не имеет, что такое истина или ложь (TRUE или FALSE), так вот эти данные конвертируются или приводятся к строке. Т.е. если мы напишем такую вещь:

< ?php $user_name = true; echo $user_name; // ? ?>

Что при этом выведется в браузер? В этом случае данные конвертируются в строку и значение TRUE приведется к строке. TRUE в строковом варианте будет «1. И в браузер выведется единица (1). Тогда вопрос — к чему приведется значение FALSE? Да к пустой строке!

Наиболее распространенный и, наверно больше показательный и надуманный пример использования этого типа данных PHP:

Забегая немного вперед, скажу, что в этом примере используется условный оператор if().

< ?php $a = 10; if($a > 0){
echo «Переменная А больше нуля!»;
}
else{
echo «Переменная А меньше нуля!»;
}
?>

Итак, что здесь происходит? Мы проверяем условие. Если, то что в круглых скобках будет равно TRUE (истина), т.е. переменная $a действительно больше нуля, то выведется первое сообщение «Переменная А больше нуля!».

Если в круглых скобках, переменная $a будет меньше нуля, то есть FALSE, то выведется второе сообщение — «Переменная $a меньше нуля!».

Поэтому, с помощью TRUE и FALSE мы можем проверять на истинность или ложность некоторые условия.

Про тип BOOLEAN и условный оператор IF{} ELSE{} можно будет прочитать в следующих статьях.
Тип INTEGER.

Это все целые положительные и отрицательные числа.
Тип FLOAT.

Это число с плавающей точкой (вещественные). Например:

< ?php $float = 1.234; $float = 1.2e3; $float = 7E-10; ?>

Тип STRING.

Это простая строка.

Вообще в PHP, в большинстве своем, мы работаем со строками. И как мы уже видели строковые значения можно заключать, как в одинарные кавычки, так и в двойные. И разница между этим есть! И вот какая. В двойные кавычки можно подставлять значения переменных. Например:

< ?php $user_name = 'Martin'; echo "Hello, $user_name"; ?>

Соответственно, мне выведется «Hello, Martin». Все достаточно просто. На самом деле, это большое достижение, т.к. ни в одних других языках так сделать нельзя. Но это еще не все. Так же, внутри двойных кавычек, мы можем использовать спецсимволы. Чтобы PHP понял что это спецсимвол, а не просто символ, он экранируется слешом. Например:

< ?php $user_name = 'Martin'; echo "Hello, \n$user_name"; ?>

Спецсимвол «\n» — это перевод на новую строку. Есть еще «\t» — это табуляция. Обратите внимание, что браузер не понимает все эти спецсимволы, т.е. в браузере мы ничего не увидим, потому как браузер понимает только тег br, как перевод на новую строку. А перевод на новую строку мы увидим в исходном коде (кто не знает, в браузере, щелкаем правой кнопкой мыши — выбираем «исходный код»). Вы спросите, для чего это надо? Ведь, по большому счету, нам все равно, что происходит в исходном коде браузера. А вот и нет, лично по мне, то я больше предпочитаю, чтобы исходный код был, ну скажем не супер-пупер отформатированным, то хотя бы более или менее читаемым. Ну и потом, мы же не всегда будем выводить что-то в браузер, мы еще будем записывать данные в файл. Вот тут, как раз и пригодится использовать форматирование. Например, мы записали в файл какой-то текст. Вот, чтобы при открытии этого файла с текстом, он не был в одну строку, а был читаемым, нам нужно будет использовать спецсимволы. Как минимум абзацы переводить на новую строчку.

Да, вот еще что хочу сказать. Служебный спецсимвол ($) доллар. По нему PHP определяет, что дальше после доллара будет идти название переменной. Вообщем, PHP определяет, что это переменная. А если мы хотим вывести в браузер сам символ доллара? Для это нам нужно перед символом доллара поставить обратный слеш («\$»).

< ?php echo "1250\$"; ?>

И выведется у нас «1250$».

Интересно, а если мы хотим вывести внутри двойных кавычек еще двойные кавычки? Тогда эти кавычки должны быть экранированы:

< ?php echo "He\"ll\"o World"; ?>

Ну вот, как раз мы и увидим в двойных кавычках двойные кавычки.

Для того чтобы получить слеш, мы тоже должные его заэкранировать и написать слеш слеш (\\).

Вывод: любые спецсимволы должны экранироваться!

Все это очень хорошо работает ТОЛЬКО в двойных кавычках. Если мы попытаемся вывести все эти примеры в одинарных кавычках — все выведется так, как есть. Вот и та разница между одинарными и двойными кавычками. Между прочим, это один из вопросов на собеседованиях.

Идем дальше. Допустим, нам нужно вывести строку, где есть очень много подстановок: это и переменные и слеши, и двойные кавычки, и спецсимволы, и доллары и т.д. В результате, если мы начнем все это подставлять, то строка у нас приобретет не читаемый бардак. Так вот, есть у нас еще один интересный способ вывода строк и называется он HEREDOC.

Например:

< ?php echo <<

Обратите внимание, как нужно правильно использовать HEREDOС!

Ставятся вот такие три угловые скобки (< <<), потом ставится какая-то метка в верхнем регистре, метка - это просто любое слово , которое вам нравится. После метки не должно быть ни каких пробелов, т.е. вы записали метку и сразу же ставите ENTER и с новой строки начинаете писать текст. После того, как вы записали текст, ставите ENTER и с новой строки записываете опять ту же метку. Перед и после закрывающей меткой не должно быть ни каких пробелов и символов. Внутри этого хередока все спецсимволы подставляются автоматически. То есть, я могу просто писать текст, ставить пробелы, переходить на другую строку и при этом мне не нужно подставлять слеши. Понятно, что и переменные тоже будут интерполироваться (подставляться). Ну например, как мы могли делать раньше: Мен\»я\» зовут: $name\n»;
echo «\t

Мне $age лет

«;
?>

Ужас, да!

А теперь что нам дает HEREDOC:

< ?php $name = "Martin"; $age = 25; echo <<

Мне $age лет

LABEL;
?>

Можете попробовать запустить этот код и в браузере в исходном коде вы увидете, что все очень хорошо отформатировалось.
Тип NULL.

Типы данных

Допустим у нас в коде появляется переменная $a:

< ?php echo $a; ?>

Какой тип данных у этой переменной? Тип NULL. Значения не было присвоено, значит ее нет.

Или была переменная, мы ей присвоили значение NULL:

< ?php $a = null; ?>

Или еще вариант — была переменная, мы ее удалили. Какой тип данных в этой переменной? Опять NULL:

< ?php $a = 1; unset($a); echo $a; ?>

Интересное по теме, советуем почитать:

Категория: Разное
Вы можете следить за комментариями с помощью RSS 2.0-ленты. Комментарии и пинги к записи запрещены.

Комментарии закрыты.