Типы данных в PHP
Всем привет! Сегодня поговорим о типах данных в PHP. Говоря о типах, мы подразумеваем типы каких-либо значений.
В сравнении с другими языками программирования, (например, C/C++/Java), в PHP одной и той же переменной можно присваивать значения разных типов. Поэтому в PHP типы следует относить не к переменной, а к значению. И говорить, например, что в переменной $var находится значение типа integer. Это называется "динамическая типизация" – одна и та же переменная может хранить значения разных типов. Согласитесь, это очень круто.
Давайте рассмотрим следующий код:
<?php
$var = 123;
$var = 'string';
$var = 3.14;
Здесь переменная $var на каждой строке меняет своё значение, при этом у этих значений разные типы. В первом случае – целое число (integer), во втором – строка (string), в третьем – дробное число (float).
Строки могут быть определены с помощью двойных или одинарных кавычек. Но при этом есть разница – в двойных кавычках интерпретатор будет пытаться найти переменные, а внутри одинарных кавычек – нет.
Пример:
<?php
$var = 123;
echo "Значение переменной: $var";
Этот код выведет на экран строку:
Значение переменной: 123
И другой пример:
<?php
$var = 123;
echo 'Значение переменной: $var';
Выведет следующее:
Значение переменной: $var
Как мы видим, внутри одинарных кавычек не был выполнен поиск переменных и интерпретатор вернул нам текст ровно так, как он был определён.
Чтобы вывести значение переменной и при этом использовать одинарные кавычки, можно склеить строки. Этот приём называется конкатенацией строк (от англ. concatenation – сцепление, связывание). Для этого используется оператор "." (точка) между двумя значениями, который отделён от них пробелами. Пример:
<?php
$var = 123;
echo 'Значение переменной: ' . $var;
Выведет строку:
Значение переменной: 123
Стоит отметить, что при использовании одинарных кавычек работа со строками будет происходить быстрее, так как не будет происходить поиск (или правильнее сказать парсинг) переменных внутри строки.
Давайте теперь рассмотрим код, похожий на тот, что мы только что написали:
<?php
$var = 123;
$string = 'Значение переменной: ' . $var;
В переменной $string сейчас хранится значение типа "строка". Несмотря на то, что до этого в $var было целое число. Это произошло в результате использования оператора "точка" для конкатенации строк. В результате его использования всегда получится строка. И, как Вы уже, наверное, догадались, тип, который получится в результате какого-либо выражения, будет зависеть от оператора. То есть, при использовании плюса (оператора сложения), всегда будет получаться число.
Пример:
<?php
$x = 1;
echo $x + '2';
Выведет результат:
3
PHP достаточно умён, чтобы автоматически преобразовать строку '2' к числу и выполнить сложение. Таким образом, в зависимости от оператора, операнды будут сначала приведены к нужному типу, а затем над ними будет выполнена операция. Это называется "приведение типов".
Приведение типа можно сделать и самостоятельно. Делается это с помощью следующей конструкции:
(тип_к_которому_нужно_привести) значение
Например:
<?php
$string = '123';
$numeric = (int) $string;
В переменной $string сейчас строка, а в переменной $numeric – уже целое число. Пока что не будем на этом детально останавливаться, но знать, что это возможно, лишним не будет.
Давайте теперь пробежимся по типам, которые мы уже рассмотрели. Это числа (целые и дробные), строки. Помимо этих есть ещё несколько типов данных. Все мы их рассматривать сейчас не будем, но рассмотрим ещё один простейший тип – boolean (булево значение). У этого типа могут быть только два значения: true и false – "истина" и "ложь" (надеюсь, информатика у всех в школе была?). Этот тип используется для проверки различных условий и в следующем уроке мы рассмотрим его применение более детально. Это всё, что касается типов.
Комментарии