Всем привет. Сегодня будем разбираться в том, как php преобразует различные типы данных к строковому виду.
Приведение к строке используется в нескольких случаях. Главный из них - это вывод с помощью конструкции
Второй случай, где работает приведение к строке это когда вы конкатенируете или подставляете в строку какую-либо переменную, например:
Начнем издалека. Для полноты картины я добавлю работу с переменными типа
Перейдем с булевым переменным. Булевая переменная принимает одно из двух значений -
Следующий, отдельный тип данных -
Таким образом, если вы выводите переменную, а получаете пустую строку, то не факт, что в переменной хранится пустая строка. В переменной с таким же успехом может храниться
В следующей части рассмотрим преобразование к строке числовых типов данных -
Приведение к строке используется в нескольких случаях. Главный из них - это вывод с помощью конструкции
echo
. Обращаю внимание, что функции var_dump
и print_r
также выводят данные, однако, руководствуются своими алгоритмами для вывода.Второй случай, где работает приведение к строке это когда вы конкатенируете или подставляете в строку какую-либо переменную, например:
$strConcat = 'Эту строку я конкатенирую с переменной ' . $var;
$strEval = "В эту строку я подставляю переменную $var";
Начнем издалека. Для полноты картины я добавлю работу с переменными типа
string
, но понятно что здесь нет никаких подводных камней)
$var = 'foo';
$strConcat = 'Эту строку я конкатенирую с переменной ' . $var;
$strEval = "В эту строку я подставляю переменную $var";
echo $var;
echo $strConcat;
echo $strEval;
// вывод:
"foo"
"Эту строку я конкатенирую с переменной foo"
"В эту строку я подставляю переменную foo"
Перейдем с булевым переменным. Булевая переменная принимает одно из двух значений -
true
или false
. Каждое из них приводится к разному строковому представлению:
$var = false;
$strConcat = 'Эту строку я конкатенирую с переменной ' . $var;
$strEval = "В эту строку я подставляю переменную $var";
echo $var;
echo $strConcat;
echo $strEval;
// вывод:
"" // на самом деле здесь ничего не выводится, я просто отмечаю что это пустая строка
"Эту строку я конкатенирую с переменной "
"В эту строку я подставляю переменную "
$var = true;
$strConcat = 'Эту строку я конкатенирую с переменной ' . $var;
$strEval = "В эту строку я подставляю переменную $var";
echo $var;
echo $strConcat;
echo $strEval;
// вывод:
"1"
"Эту строку я конкатенирую с переменной 1"
"В эту строку я подставляю переменную 1"
Следующий, отдельный тип данных -
null
. Здесь все просто:
$var = null;
$strConcat = 'Эту строку я конкатенирую с переменной ' . $var;
$strEval = "В эту строку я подставляю переменную $var";
echo $var;
echo $strConcat;
echo $strEval;
// вывод:
"" // на самом деле здесь ничего не выводится, я просто отмечаю что это пустая строка
"Эту строку я конкатенирую с переменной "
"В эту строку я подставляю переменную "
Таким образом, если вы выводите переменную, а получаете пустую строку, то не факт, что в переменной хранится пустая строка. В переменной с таким же успехом может храниться
false
, или она вообще может быть не определена (null
). Поэтому следует использовать var_dump
, чтобы увидеть реальное значение переменной.В следующей части рассмотрим преобразование к строке числовых типов данных -
int
и float
.
Комментариев нет:
Отправить комментарий