0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом уроке мы разберем, что такое строки, зачем для них нужны одинарные и двойные кавычки. Также узнаем, что такое экранирующие последовательности и конкатенация.</p>
1
<p>В этом уроке мы разберем, что такое строки, зачем для них нужны одинарные и двойные кавычки. Также узнаем, что такое экранирующие последовательности и конкатенация.</p>
2
<h2>Что такое строка</h2>
2
<h2>Что такое строка</h2>
3
<p>Какие из этих пяти вариантов - строки?</p>
3
<p>Какие из этих пяти вариантов - строки?</p>
4
<p>Какие из этих пяти вариантов - строки? С первыми двумя все понятно: это точно строки, мы уже работали с подобными конструкциями. А что насчет остальных?</p>
4
<p>Какие из этих пяти вариантов - строки? С первыми двумя все понятно: это точно строки, мы уже работали с подобными конструкциями. А что насчет остальных?</p>
5
<p>Любой одиночный символ в кавычках - это<strong>строка</strong>, например 'G'. Пустая строка '' - это тоже строка. То есть строкой мы считаем все, что находится внутри кавычек, даже если это пробел, один символ или вообще отсутствие символов.</p>
5
<p>Любой одиночный символ в кавычках - это<strong>строка</strong>, например 'G'. Пустая строка '' - это тоже строка. То есть строкой мы считаем все, что находится внутри кавычек, даже если это пробел, один символ или вообще отсутствие символов.</p>
6
<p>Ранее в уроках мы записывали строки в одинарных кавычках, но можно использовать и двойные:</p>
6
<p>Ранее в уроках мы записывали строки в одинарных кавычках, но можно использовать и двойные:</p>
7
<p>Разберем, почему у обозначения строки есть два способа.</p>
7
<p>Разберем, почему у обозначения строки есть два способа.</p>
8
<h2>Зачем нужны двойные кавычки</h2>
8
<h2>Зачем нужны двойные кавычки</h2>
9
<p>Представим, что нам нужно напечатать строчку dragon's mother. Апостроф перед буквой<strong>s</strong>- это такой же символ, как одинарная кавычка. Попробуем:</p>
9
<p>Представим, что нам нужно напечатать строчку dragon's mother. Апостроф перед буквой<strong>s</strong>- это такой же символ, как одинарная кавычка. Попробуем:</p>
10
<p>Такая программа не будет работать. С точки зрения PHP строчка началась с одинарной кавычки, а потом закончилась после буквы<strong>n</strong>. Дальше были символы s mother без кавычек - значит, это не строка. А потом была одна открывающая строку кавычка, которая так и не закрылась: ');. Этот код синтаксически некорректен.</p>
10
<p>Такая программа не будет работать. С точки зрения PHP строчка началась с одинарной кавычки, а потом закончилась после буквы<strong>n</strong>. Дальше были символы s mother без кавычек - значит, это не строка. А потом была одна открывающая строку кавычка, которая так и не закрылась: ');. Этот код синтаксически некорректен.</p>
11
<p>Здесь помогут двойные кавычки. Такой вариант программы отработает корректно:</p>
11
<p>Здесь помогут двойные кавычки. Такой вариант программы отработает корректно:</p>
12
<p>Теперь интерпретатор знает, что строка началась с двойной кавычки, значит, завершиться должна на двойной кавычке. А одинарная кавычка внутри стала частью строки.</p>
12
<p>Теперь интерпретатор знает, что строка началась с двойной кавычки, значит, завершиться должна на двойной кавычке. А одинарная кавычка внутри стала частью строки.</p>
13
<p>Верно и обратное. Если внутри строки мы хотим использовать двойные кавычки, то саму строку надо оформлять в одинарных. Причем количество кавычек внутри самой строки неважно.</p>
13
<p>Верно и обратное. Если внутри строки мы хотим использовать двойные кавычки, то саму строку надо оформлять в одинарных. Причем количество кавычек внутри самой строки неважно.</p>
14
<p>Теперь представим, что мы хотим создать такую строку:</p>
14
<p>Теперь представим, что мы хотим создать такую строку:</p>
15
<p>В ней есть и одинарные, и двойные кавычки. В этой ситуации нужно указать интерпретатору, что нужно считать каждую кавычку частью строки, а не началом или концом.</p>
15
<p>В ней есть и одинарные, и двойные кавычки. В этой ситуации нужно указать интерпретатору, что нужно считать каждую кавычку частью строки, а не началом или концом.</p>
16
<p>Для этого<strong>экранируют</strong>специальные символы. В нашем случае это символ, который является признаком конца и начала строки, - либо одинарная кавычка, либо двойная, в зависимости от ситуации. Для экранирования используется обратный слеш \.</p>
16
<p>Для этого<strong>экранируют</strong>специальные символы. В нашем случае это символ, который является признаком конца и начала строки, - либо одинарная кавычка, либо двойная, в зависимости от ситуации. Для экранирования используется обратный слеш \.</p>
17
<p>Нам нужно было добавить \ для двойных кавычек, но не для апострофа, потому что сама строка создана с двойными кавычками. Если бы строка создавалась с одинарными кавычками, то символ экранирования нужен был бы перед апострофом, но не перед двойными кавычками.</p>
17
<p>Нам нужно было добавить \ для двойных кавычек, но не для апострофа, потому что сама строка создана с двойными кавычками. Если бы строка создавалась с одинарными кавычками, то символ экранирования нужен был бы перед апострофом, но не перед двойными кавычками.</p>
18
<p>Также нам может понадобиться вывести сам обратный слэш:</p>
18
<p>Также нам может понадобиться вывести сам обратный слэш:</p>
19
<p>Это тоже можно сделать через экранирование, но уже самого себя.</p>
19
<p>Это тоже можно сделать через экранирование, но уже самого себя.</p>
20
<h2>Что такое экранирующие последовательности</h2>
20
<h2>Что такое экранирующие последовательности</h2>
21
<p>Иногда нам необходимо расположить несколько строк друг за другом. Для этого нужно сказать интерпретатору "нажать на Enter" - сделать перевод строки после вопросительного знака. Это можно сделать с помощью символа перевода строки - \n:</p>
21
<p>Иногда нам необходимо расположить несколько строк друг за другом. Для этого нужно сказать интерпретатору "нажать на Enter" - сделать перевод строки после вопросительного знака. Это можно сделать с помощью символа перевода строки - \n:</p>
22
<p>Результат:</p>
22
<p>Результат:</p>
23
<p>\n - это специальный символ. В литературе его часто обозначают как<em>LF</em>(Line Feed). С точки зрения компьютера - это один невидимый символ перевода строки:</p>
23
<p>\n - это специальный символ. В литературе его часто обозначают как<em>LF</em>(Line Feed). С точки зрения компьютера - это один невидимый символ перевода строки:</p>
24
<p>\n - это способ записать символ перевода строки, но сам перевод строки - это один невидимый символ. Так как количество знаков на клавиатуре ограничено и отдано под самые важные, то все специальные символы реализуются в виде таких обозначений.</p>
24
<p>\n - это способ записать символ перевода строки, но сам перевод строки - это один невидимый символ. Так как количество знаков на клавиатуре ограничено и отдано под самые важные, то все специальные символы реализуются в виде таких обозначений.</p>
25
<p>Символ перевода строки не является специфичным для программирования. Во многих редакторах есть опция, которая позволяет включить отображение невидимых символов. С ее помощью можно понять, где они находятся. Хотя это всего лишь схематичное отображение, у этих символов нет графического представления, они невидимые.</p>
25
<p>Символ перевода строки не является специфичным для программирования. Во многих редакторах есть опция, которая позволяет включить отображение невидимых символов. С ее помощью можно понять, где они находятся. Хотя это всего лишь схематичное отображение, у этих символов нет графического представления, они невидимые.</p>
26
<p>\n - это пример<strong>экранирующей последовательности</strong>(escape sequence). Их еще называют управляющими конструкциями. Таких символов не один десяток, но в программировании часто встречаются всего несколько. Программистам часто нужно использовать перевод строки \n для правильного форматирования текста.</p>
26
<p>\n - это пример<strong>экранирующей последовательности</strong>(escape sequence). Их еще называют управляющими конструкциями. Таких символов не один десяток, но в программировании часто встречаются всего несколько. Программистам часто нужно использовать перевод строки \n для правильного форматирования текста.</p>
27
<p>Экранирующие последовательности вроде \n работают<strong>только внутри двойных кавычек</strong>.</p>
27
<p>Экранирующие последовательности вроде \n работают<strong>только внутри двойных кавычек</strong>.</p>
28
<p>Если нам понадобится вывести \n именно как текст, то можно воспользоваться уже известным нам способом экранирования - добавить еще один \ в начале. В итоге последовательность \\n отобразится как символы \ и n, которые идут друг за другом.</p>
28
<p>Если нам понадобится вывести \n именно как текст, то можно воспользоваться уже известным нам способом экранирования - добавить еще один \ в начале. В итоге последовательность \\n отобразится как символы \ и n, которые идут друг за другом.</p>
29
<p>В Windows для перевода строк по умолчанию используется \r\n. Такая комбинация хорошо работает только в Windows, но создает проблемы при переносе в другие системы. Например, когда в команде разработчиков есть пользователи как Windows, так и Linux.</p>
29
<p>В Windows для перевода строк по умолчанию используется \r\n. Такая комбинация хорошо работает только в Windows, но создает проблемы при переносе в другие системы. Например, когда в команде разработчиков есть пользователи как Windows, так и Linux.</p>
30
<p>Последовательность \r\n имеет разную трактовку в зависимости от выбранной кодировки. Это мы рассмотрим позже. По этой причине в среде разработчиков принято всегда использовать \n без \r, так как LF всегда трактуется одинаково и отлично работает в любой системе. Поэтому нужно настроить свой редактор на использование \n.</p>
30
<p>Последовательность \r\n имеет разную трактовку в зависимости от выбранной кодировки. Это мы рассмотрим позже. По этой причине в среде разработчиков принято всегда использовать \n без \r, так как LF всегда трактуется одинаково и отлично работает в любой системе. Поэтому нужно настроить свой редактор на использование \n.</p>
31
<h2>Что такое конкатенация</h2>
31
<h2>Что такое конкатенация</h2>
32
<p>В веб-разработке программы постоянно оперируют строками. Все, что мы видим на сайтах, так или иначе представлено в виде текста. Этот текст чаще всего динамический - полученный из разных частей, которые соединяются вместе. Операция соединения строк в программировании называется<strong>конкатенацией</strong>.</p>
32
<p>В веб-разработке программы постоянно оперируют строками. Все, что мы видим на сайтах, так или иначе представлено в виде текста. Этот текст чаще всего динамический - полученный из разных частей, которые соединяются вместе. Операция соединения строк в программировании называется<strong>конкатенацией</strong>.</p>
33
<p>Мы уже знаем о математической операции сложения:</p>
33
<p>Мы уже знаем о математической операции сложения:</p>
34
<p>Такая программа выведет на экран 8 - результат работы бинарного оператора + с операндами 5 и 3.</p>
34
<p>Такая программа выведет на экран 8 - результат работы бинарного оператора + с операндами 5 и 3.</p>
35
<p>Можно также "сложить" две строки. Такая программа выведет на экран Dragonstone - результат работы бинарного оператора . с операндами 'Dragon' и 'stone':</p>
35
<p>Можно также "сложить" две строки. Такая программа выведет на экран Dragonstone - результат работы бинарного оператора . с операндами 'Dragon' и 'stone':</p>
36
<p>Склеивание строк всегда происходит в том же порядке, в котором записаны операнды. Левый операнд становится левой частью строки, а правый - правой. Вот еще несколько примеров:</p>
36
<p>Склеивание строк всегда происходит в том же порядке, в котором записаны операнды. Левый операнд становится левой частью строки, а правый - правой. Вот еще несколько примеров:</p>
37
<p>Строки можно склеивать, даже если они записаны с разными кавычками.</p>
37
<p>Строки можно склеивать, даже если они записаны с разными кавычками.</p>
38
<p>Пробел - такой же символ, как и другие, поэтому сколько пробелов поставить в строке - столько и получится в итоговой строке:</p>
38
<p>Пробел - такой же символ, как и другие, поэтому сколько пробелов поставить в строке - столько и получится в итоговой строке:</p>
39
<h2>Выводы</h2>
39
<h2>Выводы</h2>
40
<p>В этом уроке мы разобрали, что такое строки - это любой одиночный символ в кавычках. Кавычки могут быть одинарными и двойными. Выбор количества кавычек зависит от того, какие кавычки могут использоваться внутри строки.</p>
40
<p>В этом уроке мы разобрали, что такое строки - это любой одиночный символ в кавычках. Кавычки могут быть одинарными и двойными. Выбор количества кавычек зависит от того, какие кавычки могут использоваться внутри строки.</p>
41
<p>Если в строке есть и одинарные, и двойные кавычки, нужно указать интерпретатору, что нужно считать каждую кавычку частью строки, а не началом или концом. Для этого экранируют специальные символы.</p>
41
<p>Если в строке есть и одинарные, и двойные кавычки, нужно указать интерпретатору, что нужно считать каждую кавычку частью строки, а не началом или концом. Для этого экранируют специальные символы.</p>
42
<p>Если нужно сделать перевод строки, то для этого используется символ \n, который является примером экранирующей последовательности. Экранирующие последовательности работают только внутри двойных кавычек.</p>
42
<p>Если нужно сделать перевод строки, то для этого используется символ \n, который является примером экранирующей последовательности. Экранирующие последовательности работают только внутри двойных кавычек.</p>
43
<p>Также мы узнали, что в коде можно не только складывать цифры, но и строки. Операция соединения строк в программировании называется конкатенацией.</p>
43
<p>Также мы узнали, что в коде можно не только складывать цифры, но и строки. Операция соединения строк в программировании называется конкатенацией.</p>