PHP: Строки
Значениями типа string являются текстовые строки (кратко строки). Строка — это последовательность из нуля или более символов. Символы включают в себя буквы, цифры, знаки пунктуации, специальные символы и пробелы.
Строка может быть определена четырьмя различными способами:
- двойными кавычками
- одинарными кавычками
- heredoc-синтаксисом
- nowdoc-синтаксисом
Строка в двойных кавычках
Строка в двойных кавычках:
$str = "Строка"; echo "Одну большую строку можно разбить на несколько маленьких строк, чтобы её было удобнее читать.";
В строках с двойными кавычками можно использовать управляющие последовательности. Управляющая последовательность — это специальные символы предназначенные для форматирования текстового вывода. В PHP доступны следующие управляющие последовательности:
Последовательность | Значение |
---|---|
\n | Перевод на новую строку (шестнадцатеричный код 0A). |
\t | Горизонтальная табуляция (шестнадцатеричный код 09). |
\\ | Обратная косая черта (обратный слэш). |
\$ | Знак доллара. |
\» | Двойная кавычка. |
\xXX | Символ, заданный одной или двумя шестнадцатеричными цифрами. |
Основным свойством строк в двойных кавычках является возможность обработки переменных внутри строк.
$num = 10; echo "Число: $num
Знак доллара: \$";
Строки, заключённые в двойные кавычки, могут содержать символы одинарных кавычек:
Строка в одинарных кавычках (апострофах)
Строка в одинарных кавычках:
$str = 'Строка'; echo 'Одну большую строку можно разбить на несколько маленьких строк, чтобы её было удобнее читать.';
В отличие от строк в двойных кавычках и heredoc-синтаксиса, переменные и управляющие последовательности (за одним исключением), заключённые в одинарные кавычки, не обрабатываются. Это означает, что они будут интерпретированы как обычные символы строки:
$num = 10; echo 'Число: $num
Знак доллара: \$';
Чтобы в строке, заключённой в одинарные кавычки, можно было использовать одинарные кавычки, нужно их экранировать с помощью обратного слэша ( \’ ). Если необходимо написать саму обратную косую черту, нужно продублировать её ( \\ ):
echo 'Внутри используются \'одинарные\' кавычки'; echo 'Обратный слэш: \\';
Строки, заключённые в одинарные кавычки, могут содержать символы двойных кавычек:
Heredoc-синтаксис
Heredoc-синтаксис — это альтернативный способ записи строк.
Строка, определяемая с помощью Heredoc-синтаксиса, работает также, как и строка, расположенная в двойных кавычках. Разница между Heredoc и строкой в двойных кавычках заключается в том, что используя Heredoc нет необходимости экранировать двойные кавычки.
Nowdoc-синтаксис
Nowdoc-синтаксис также как и Heredoc является альтернативным способом записи строк.
Строка, определяемая с помощью Nowdoc-синтаксиса, работает также, как и строка, расположенная в одинарных кавычках. Разница между Nowdoc и строкой в одинарных кавычках заключается в том, что используя Nowdoc нет необходимости экранировать одинарные кавычки.
Синтаксис Nowdoc похож на Heredoc с той лишь разницей, что открывающий идентификатор обязательно должен быть заключён в одинарные кавычки:
Обработка переменных в строках
Существует два типа синтаксиса обработки переменных в строках: простой и сложный.
Простой синтаксис — это когда имя переменной указывается в строке как есть.
Когда интерпретатор встречает знак доллара, он начинает последовательно проверять являются ли все последующие символы допустимыми символами в имени переменной. Таким образом, чтобы сформировать правильное имя переменной, он захватывает так много символов, на сколько это возможно:
$str = "World!"; echo "Hello $str";
Сложный синтаксис — это когда имя переменной заключается в фигурные скобки.
Так как, для обработки переменной в строке, интерпретатор захватывает так много символов, на сколько это возможно бывают ситуации когда интерпретатор не способен самостоятельно определить, где оканчивается имя переменной:
$sport1 = 'волей'; $sport2 = 'фут'; echo "Мне нравится $sport1бол и $sport2бол";
В данном случае не будет достигнут желаемый результат, поскольку интерпретатор будет считать $sport1 как часть имени переменной $sport1бол , которой не существует.
Чтобы явно указать интерпретатору, где оканчивается имя переменной требуется заключить имя переменной в фигурные скобки:
$sport1 = 'волей'; $sport2 = 'фут'; echo "Мне нравится бол и бол.";
Знак доллара может быть расположен как перед фигурной скобкой, так и после неё:
$sport1 = 'волей'; $sport2 = 'фут'; echo "Мне нравится $бол и бол.";
Конкатенация
Конкатенация — это объединение двух или более строк в одну большую. Объединение происходит с помощью оператора конкатенации — . (точка). При конкатенации каждая последующая строка добавляется в конец предыдущей:
Значение любого типа, которое объединяется со строкой, будет неявно преобразовано в строку и далее будет произведена конкатенация:
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru
9.2: Обработка переменных внутри строк
Одна из самых главных особенностей строк, определенных с помощью двойных кавычек, — это возможность обрабатывать переменные внутри них (листинг 9.4).
Листинг 9.4. Обработка переменных внутри строк.
‹html›
‹head›
‹title› Обработка переменных внутри строк ‹/title›
‹/head›
‹body›
‹?php
$str = «Иван»;
// выведет: Привет, Иван!
echo «Привет, $str!»;
?›
‹/body›
‹/html›
В данном случае вместо подстроки $str подставляется значение переменной $str. Происходит это по следующей схеме. Подстрока будет считаться переменной, если она образует правильное имя переменной (смотрите главу 4). Например, в строке Hello, $strs! переменной будет считаться $strs, а не $str как в предыдущем примере. Если все-таки требуется распознать именно переменную $str в этой строке, то надо применить фигурные скобки (листинг 9.5).
Листинг 9.5. Особенности обработки переменных внутри строк.
‹html›
‹head›
‹title› Особенности обработки переменных внутри строк ‹/title›
‹/head›
‹body›
‹?php
$str = ‘Ivan’;
// выведет: Hello, Ivans!
echo «Hello, s!»;
?›
‹/body›
‹/html›
В том случае если вам понадобится вывести знак доллара (например, для вывода имени переменной), можно использовать одинарные кавычки или экранировать его.
Листинг 9.6. Вывод знака доллара.
‹html›
‹head›
‹title› вывод знака доллара ‹/title›
‹/head›
‹body›
‹?php
$str = «Hello»;
// выведет: Переменная имеет имя $str
echo ‘Переменная имеет имя $str’;
echo «‹br›»;
// выедет: Переменная имеет имя $str
echo ‘Переменная имеет имя \$str’;
?›
‹/body›
‹/html›
В обоих случаях переменная в строках не определяется.
PHP Переменные
После выполнения приведенных выше инструкций переменная $txt будет иметь значение Hello world! , переменная $x будет иметь значение 5 , и переменная $y будет иметь значение 10.5 . Примечание: Когда вы присваиваете текстовое значение переменной, заключите значение в кавычки. Примечание: В отличие от других языков программирования, в PHP нет команды для объявления переменной. Она создаётся в тот момент, когда вы впервые присваиваете ей значение.
PHP Переменные
- Переменная начинается со знака $ , за которым следует имя переменной
- Имя переменной должно начинаться с буквы или символа подчеркивания
- Имя переменной не может начинаться с цифры
- Имя переменной может содержать только буквенно-цифровые символы и символы подчеркивания (A-z, 0-9, и _ )
- Имена переменных чувствительны к регистру ( $age и $AGE — это две разные переменные)
Помните, что имена переменных PHP чувствительны к регистру!
Вывод переменных
PHP инструкция echo часто используется для вывода данных на экран.
В следующем примере будет показано, как выводить текст и переменную:
Пример
В следующем примере будет получен тот же результат, что и в примере выше:
Пример
В следующем примере будет выведена сумма двух переменных:
Пример
Примечание: Вы узнаете больше об инструкции echo и о том, как выводить данные на экран в следующей главе.
PHP — это слабо типизированный язык
В приведенном выше примере обратите внимание, что нам не нужно было указывать PHP, какому типу данных принадлежит переменная.
PHP автоматически связывает тип данных с переменной в зависимости от её значения. Поскольку типы данных строго не установлены, вы можете делать такие вещи, как добавление строки к целому числу, не вызывая ошибки.
В PHP 7 были добавлены объявления типов. Это даёт возможность указать тип данных, ожидаемый при объявлении функции, а при включении строгого требования будет выдана «Fatal Error» («Фатальная ошибка») на несоответствие типа.
Вы узнаете больше о strict (строгих) и non-strict (не строгих) требованиях, а также объявлениях типов данных в главе PHP Функции.