string это серия символов. В PHP символ это то же самое, что и байт, то есть имеется точно 256 различных возможных символов. Это также предполагает, что в PHP нет встроенной поддержки Unicode.
Примечание: строки могут быть очень большими. Практически нет ограничений на размер строк в PHP, поэтому нет никаких причин заботиться о длине строк.
Примечание: строки могут быть очень большими. Практически нет ограничений на размер строк в PHP, поэтому нет никаких причин заботиться о длине строк.
Синтаксис
Строковой литерал может специфицироваться тремя способами.
одинарными кавычками
двойными кавычками
heredoc-синтаксисом
Одинарные кавычки
Простейший способ специфицировать строку - заключить её в одинарные кавычки (символ ').
Для специфицирования литеральной одинарной кавычки вам нужно мнемонизировать/escape её с помощью backslash (), как во многих других языках. Если backslash должен появиться перед одинарной кавычкой или в конце строки, нужно его удвоить. Обратите внимание, что если вы захотите мнемонизировать любой другой символ, backslash также будет напечатан! Поэтому обычно нет необходимости мнемонизировать сам backslash.
Примечание: в PHP 3 при этом будет выведено предупреждение уровня E_NOTICE.
Примечание: в отличие от двух других видов синтаксиса, переменные здесь не разворачиваются (не обсчитываются), когда находятся внутри строки, заключённой в одинарные кавычки.
echo 'Это простая строка.';
echo 'Вы можете также внедрять в строки символы newline,
как здесь.';
echo 'Arnold once said: "I'll be back"';
// на выходе: ... "I'll be back"
echo 'Are you sure you want to delete C:*.*?';
// на выходе: ... delete C:*.*?
echo 'Are you sure you want to delete C:*.*?';
// на выходе: ... delete C:*.*?
echo 'I am trying to include at this point:
a newline';
// на выходе: ... this point:
a newline
Двойные кавычки
Если строка заключена в двойные кавычки ("), PHP понимает б́ольшее количество escape-последовательностей (мнемоник) специальных символов:
Мнемоники символов последовательность значение
linefeed/прогон строки (LF или 0x0A (10) в ASCII)
carriage return/возврат каретки (CR или 0x0D (13) в ASCII)
horizontal tab/горизонтальная табуляция (HT или 0x09 (9) в ASCII)
backslash/обратная наклонная черта
$ знак dollar/доллар
" double-quote/двойная кавычка
[0-7]{1,3} последовательность символов, совпадающая с регулярным выражением, символ в 8-ричной нотации
x[0-9A-Fa-f]{1,2} последовательность символов, совпадающая с регулярным выражением, символ в 16-ричной нотации
Ещё раз напоминает, что если вы захотите мнемнонизировать любой другой символ, backslash также будет напечатан!
Но самым важным свойством строки, заключённой в двойные кавычки, является то, что имена переменных разворачиваются. См. разбор строк.
Heredoc
Другой способ ограничения строки - использовать синтаксис heredoc ("Предупреждение!
Важно отметить, что строчка с закрывающим идентификатором не содержит больше никаких символов, за исключением, возможно, точки с запятой (;). Это означает, что идентификатор не может вводится с отступом и что не может быть никаких пробельных символов и знаков табуляции до и после точки с запятой.
Самое, возможно, неприятное, что в конце строки не может быть также и символа carriage return (
), только form feed, AKA newline (
). Поскольку Microsoft Windows использует последовательность
как терминатор строки, ваш heredoc может не сработать, если вы запишете ваш скрипт в редакторе под Windows. Однако большинство программ-редакторов дают возможность сохранять ваши файлы с терминатором строк UNIX.
Heredoc текст ведёт себя так же, как строка в двойных кавычках. Это значит, что вам не нужно мнемонизировать кавычки в heredocs, но можно продолжать использовать коды-мнемоники, перечисленные выше. Переменные разворачиваются, но с комплексными переменными в heredoc нужно работать так же внимательно, как и со строками.[/0][/0]
Строковой литерал может специфицироваться тремя способами.
одинарными кавычками
двойными кавычками
heredoc-синтаксисом
Одинарные кавычки
Простейший способ специфицировать строку - заключить её в одинарные кавычки (символ ').
Для специфицирования литеральной одинарной кавычки вам нужно мнемонизировать/escape её с помощью backslash (), как во многих других языках. Если backslash должен появиться перед одинарной кавычкой или в конце строки, нужно его удвоить. Обратите внимание, что если вы захотите мнемонизировать любой другой символ, backslash также будет напечатан! Поэтому обычно нет необходимости мнемонизировать сам backslash.
Примечание: в PHP 3 при этом будет выведено предупреждение уровня E_NOTICE.
Примечание: в отличие от двух других видов синтаксиса, переменные здесь не разворачиваются (не обсчитываются), когда находятся внутри строки, заключённой в одинарные кавычки.
echo 'Это простая строка.';
echo 'Вы можете также внедрять в строки символы newline,
как здесь.';
echo 'Arnold once said: "I'll be back"';
// на выходе: ... "I'll be back"
echo 'Are you sure you want to delete C:*.*?';
// на выходе: ... delete C:*.*?
echo 'Are you sure you want to delete C:*.*?';
// на выходе: ... delete C:*.*?
echo 'I am trying to include at this point:
a newline';
// на выходе: ... this point:
a newline
Двойные кавычки
Если строка заключена в двойные кавычки ("), PHP понимает б́ольшее количество escape-последовательностей (мнемоник) специальных символов:
Мнемоники символов последовательность значение
linefeed/прогон строки (LF или 0x0A (10) в ASCII)
carriage return/возврат каретки (CR или 0x0D (13) в ASCII)
horizontal tab/горизонтальная табуляция (HT или 0x09 (9) в ASCII)
backslash/обратная наклонная черта
$ знак dollar/доллар
" double-quote/двойная кавычка
[0-7]{1,3} последовательность символов, совпадающая с регулярным выражением, символ в 8-ричной нотации
x[0-9A-Fa-f]{1,2} последовательность символов, совпадающая с регулярным выражением, символ в 16-ричной нотации
Ещё раз напоминает, что если вы захотите мнемнонизировать любой другой символ, backslash также будет напечатан!
Но самым важным свойством строки, заключённой в двойные кавычки, является то, что имена переменных разворачиваются. См. разбор строк.
Heredoc
Другой способ ограничения строки - использовать синтаксис heredoc ("Предупреждение!
Важно отметить, что строчка с закрывающим идентификатором не содержит больше никаких символов, за исключением, возможно, точки с запятой (;). Это означает, что идентификатор не может вводится с отступом и что не может быть никаких пробельных символов и знаков табуляции до и после точки с запятой.
Самое, возможно, неприятное, что в конце строки не может быть также и символа carriage return (
), только form feed, AKA newline (
). Поскольку Microsoft Windows использует последовательность
как терминатор строки, ваш heredoc может не сработать, если вы запишете ваш скрипт в редакторе под Windows. Однако большинство программ-редакторов дают возможность сохранять ваши файлы с терминатором строк UNIX.
Heredoc текст ведёт себя так же, как строка в двойных кавычках. Это значит, что вам не нужно мнемонизировать кавычки в heredocs, но можно продолжать использовать коды-мнемоники, перечисленные выше. Переменные разворачиваются, но с комплексными переменными в heredoc нужно работать так же внимательно, как и со строками.[/0][/0]
Обсуждения Строки в PHP