Как работают строки в PHP

 

Работа со строками в PHP

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

В этой статье вы узнаете, как создавать строки, как выводить их на экран, использовать escape-последовательности, объединять строки и хранить строки в переменных. Также мы рассмотрим правила использования кавычек, апострофов и символов новой строки в PHP.

Одинарные и двойные кавычки в строках PHP

Чтобы создать строку в PHP, нужно заключить последовательность символов в одинарные или двойные кавычки. В зависимости от кавычек PHP интерпретирует строки по-разному, то есть для PHP эти две сроки – не одно и то же:

'This is a string in single quotes.'
"This is a string in double quotes."

Перед выводом строки в двойных кавычках PHP оценивает любые переменные или escape-последовательности внутри нее. Строки в одинарных кавычках выводятся в точности так же, как они были записаны. Чтобы использовать апостроф внутри строк в одинарных кавычках, перед ним нужно поставить обратный слеш.

К примеру, если нам нужно вывести на экран с помощью команды echo эту строку PHP:

'8host says: "This string\'s in single quotes." It required a backslash (\) before the apostrophes (\\\'), but do not use (\") with the double quotes.'

Команда вернет этот вывод:

8host says: "This string's in single quotes." It required a backslash (\) before the apostrophes (\'), but do not use (\") with the double quotes.

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

Обратный слеш – это escape-символ, который позволяет PHP читать некоторые символы буквально. Например, чтобы отобразить последовательность символов \’ в предыдущем примере, вы должны использовать три обратных слеша подряд (\\\’). Первые два символа \\ нужны для рендеринга одного обратного слеша, а \’ – для рендеринга апострофа.

Строка:

"8host says: \"This string's in double quotes.\" It requires a backslash (\) before the double quotes (\\\"), but you MUST NOT add a backslash before the apostrophe (\')."

Будет отображаться так:

8host says: "This string's in double quotes." It requires a backslash (\) before the double quotes (\"), but you MUST NOT add a backslash before the apostrophe (\').

Опять же, если ваша строка помещена в двойные кавычки, но в ней нужно использовать еще одни двойные кавычки, то перед ними обязательно нужно поставить обратный слеш. Если этого не сделать, PHP завершит строку в этой точке, что вызовет ошибку. Соответственно, перед апострофом в такой строке не нужно ставить escape-символ.

Аналогично, чтобы вывести последовательность символов \”, нужно использовать три обратных слеша, два из них – это escape-символы для \ и для ‘.

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

Управляющие последовательности

Управляющая последовательность говорит программе, что она должна остановить стандартную рабочую процедуру и по-другому оценить символы, идущие после escape-символа.

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

Вот несколько распространенных escape-последовательностей для строк, заключенных в двойные кавычки:

  • \” – двойные кавычки
  • \\ – обратный слеш
  • \$ – отобразит знак доллара вместо расширения переменной
  • \n – новая строка
  • \t – горизонтальная табуляция

Как можно использовать эти последовательности в строке, показано в следующем примере:

"\"What type of \$ do Blogs use?\"\n\tSand dollars!"
"What type of $ do Blogs use?"
Sand dollars!

Управляющие последовательности дают нам возможность записать любую строку.

Вывод строк

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

$my_name = "8host";
echo 'Name is specified using the variable $my_name.';
echo "\n"; // escape-последовательность для символа новой строки
echo "Hello, my name is $my_name. It's stored in the variable \$my_name.";

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

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

Name is specified using the variable $my_name.
Hello, my name is 8host. It's stored in the variable $my_name.

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

Конкатенация строк

Конкатенация – это объединение нескольких строк в одну новую строку. В PHP есть два способа объединения строки.

Первый способ – включить в строку строковую переменную, заключенную в двойные кавычки. Это мы видели в предыдущем разделе. Вот еще один пример:

$answer = "Chews wisely.";
echo "What do Blogs do when they have a big choice to make? $answer";

Этот код объединит строку и переменную $answer, значение которой – строка «Chews wisely.»:

What do Blogs do when they have a big choice to make? Chews wisely.

Второй способ конкатенации строк – использовать специальный оператор, который обозначается точкой.

Давайте объединим строки “8host” и “Blog” в одну строку с помощью оператора конкатенации и echo:

echo "8host" . "Blog";

Этот код использует оператор «.» для объединения строк «8host» и «Blog» без пробела между ними.

Если вам нужен пробел между двумя строками, просто добавьте пробел в одну из строк, например, после слова 8host:

echo "8host " . "Blog";

Использовать конкатенацию для объединения строки с целым числом нельзя. Например:

echo "8host" . 27;

Это приведет к ошибке:

Parse error: syntax error, unexpected '.27' (T_DNUMBER), expecting ';' or ',' in php shell code on line 1

Если же вы поместите 27 в кавычки (вот так “27”), то эти данные будут оцениваться как строка.

PHP – это слабо типизированный язык, то есть он будет пытаться преобразовать предоставленные данные на основе запроса. Если вы присвоите переменной значение 27, при конкатенации этой переменной со строкой PHP проанализирует ее как строку:

$my_int = 27;
echo "8host" . $my_int;
Вы получите:
8host27

Итак, мы рассмотрели два основных способа конкатенации, или объединения строк. Теперь давайте посмотрим, как PHP позволяет перезаписывать или обновлять строки.

Обновление строк

Обычные переменные в PHP изменяемы, что означает, что их можно обновлять. Давайте посмотрим, что происходит, когда мы меняем значение переменной $my_name:

$my_name = "8host";
echo $my_name . "\n";
$my_name = "Blog";
echo $my_name;

Вывод будет выглядеть так:

8host
Blog

Сначала переменной присвоили значение “8host” и отобразили ее с помощью echo. Затем мы присвоили ей другое значение, “Blog”, и при повторном вызове echo отображает новое значение.

Вместо перезаписи переменной вы можете использовать оператор конкатенации и присваивания (.=), чтобы добавить новые данные в конец строки:

$my_name = "8host";
$my_name .= " Blog";
echo $my_name;

Сначала мы установили переменной $my_name строку “8host”, а затем с помощью операторов .= добавили ” Blog” в конец этой строки. Новое значение $my_name – 8host Blog.

8host Blog

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

$my_name = "Blog";
$my_name = "8host " . $my_name;
echo $my_name;

На этот раз мы сначала присвоили переменной $my_name значение “Blog”, а затем использовали оператор = для переопределения переменной $my_name новой строкой “8host “, объединенной с предыдущим значением переменной $my_name. Итоговое значение переменной $my_name – 8host Blog.

8host Blog

Перезапись дает нам возможность вносить изменения в существующие строки.

Пробелы в строках

Поскольку PHP не чувствителен к пробелам, вы можете поместить в кавычки столько пробелов или разрывов строк, сколько захотите.

echo "8host
The (silly)
Blog";
Вы получите:
8host
The (silly)
Blog

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

Предыдущий пример в HTML будет выглядеть так:

8host The (silly) Blog

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

Заключение

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

Продолжая работать со строками, помните об этих трех аспектах:

  1. Кавычки играют важную роль в строках.
  2. Конкатенация позволяет объединить строки в одну строку.
  3. С помощью переменных вы можете сделать строки многоразовыми.

Читайте также:

Tags:

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