9.1: Строка
Главная Страница » Книги по PHP » Самоучитель PHP 5 для чайников с примерами » Строка в PHP
Многие зададутся вопросом, почему о строках рассказывается в отдельной главе. Действительно, на первый взгляд может показаться, что их функциональность невелика, так как это всего лишь переменные скалярного типа данных String. Но в PHP эффективная работа со строками требует глубокого понимания этой темы.
Что такое строка?
Как уже было сказано выше, в PHP существует скалярный тип данных String, переменные которого называют строками. По своей сути строка - это просто набор символов.
Определить строку можно следующими способами:
$stroka_1 = "Hello, World!"; // с помощью двойных кавычек
$stroka_2 = 'Hello, World!'; // с помощью одинарных кавычек
Итак, в данном случае строка создается с помощью оператора присваивания и двойных и одинарных кавычек.
(!) Кроме того, строку можно создать с помощью heredoc - синтаксиса, описание которого здесь не приводится из-за специфического применения.
Несложно заметить, что определение строки почти ни чем не отличается от определения переменных других скалярных типов. Тем не менее проблемы начинают возникать, например, если вам требуется вывести одинарную или двойную кавычку (листинг 9.1).
Листинг 9.1. Неправильное определение строки.
‹html›
‹head›
‹title› Неправильное определение строки ‹/title›
‹/head›
‹body›
‹?php
$str = 'Он сказал: 'Привет!''; // эта строчка вызовет ошибку
echo $str;
?›
‹/body›
‹/html›
В данном случае в окне браузера выведется ошибка, которая заключается в том, что неправильно определена строка. Это происходит потому, что строкой считается набор символов между первой и ближайшей к ней кавычкой. Для решения этой проблемы применяют экранирование символов с помощью обратной косой черты (\). Тогда наша программа будет выглядеть так, как показано на примере листинга 9.2.
Листинг 9.2. Правильное определение строки.
‹html›
‹head›
‹title› Правильное определение строки ‹/title›
‹/head›
‹body›
‹?php
$str = "Он сказал: \'Привет!\' "; // так правильно
echo $str;
?›
‹/body›
‹/html›
В данном случае программа выполнится без ошибок. Однако это всего лишь самый простой пример. На практике часто требуется, чтобы строки содержали в себе перевод строки, табуляцию и другие символы форматирования текста. Но такое возможно только при использовании двойных кавычек (листинг 9.3).
Листинг 9.3. Использование специальных символов.
‹html›
‹head›
‹title› Использование специальных символов ‹/title›
‹/head›
‹body›
‹pre›
‹?php
// выводит: Одинарные кавычки \n
echo 'Одинарные кавычки \n';
echo "‹br›";
// выводит: Двойные кавычки
echo "Двойные кавычки \n";
?›
‹/рre›
‹/body›
‹/html›
Несложно заметить, что в строках с одинарными кавычками специальные символы не распознаются, и это не единственное различие.