Урок 4. PHP — Строки

В предыдущем уроке, PHP echo, мы использовали строки, но не говорили о них подробно. С ними вы еще ни раз столкнетесь. Это ведь так сказать основа всего сайтостроения :) Поэтому читайте этот урок внимательно и ничего не пропустите!

PHP — Создание строк

Прежде чем вы сможете использовать строку, вы должны создать ее! Строка может быть использована непосредственно в функции или сохранена в переменной. Ниже мы создадим одну и ту же строку дважды: сначала сохраним ее в переменной, а во втором случае мы пошлем строку непосредственно на вывод.

$my_string = "myblaze.ru - лучший сайт в мире!";
echo "myblaze.ru - лучший сайт в мире!";
echo $my_string;

В приведенном выше примере первая строка будет храниться в переменной $my_string, а вторая строка будет использоваться в echo без сохранения. Не забудьте сохранить ваши строки в переменные, если вы планируете использовать их больше, чем один раз! Ниже приведен результат кода из нашего примера. Строки выглядят одинаково как вы видите.

myblaze.ru - лучший сайт в мире!

PHP — Строки в одинарных кавычках

До сих пор мы создавали строки, используя двойные кавычки, но их так же можно создавать и в одинарных кавычках, известных как апостроф (‘).

$my_string = 'myblaze.ru - лучший сайт в мире';
echo 'myblaze.ru - лучший сайт в мире';
echo $my_string;

Если вы хотите использовать одинарные кавычки в строке, вы должны избавиться от одной кавычки, поставив перед ней обратную косую черту \. Например, так: \»!
Пример:

echo 'myblaze it\'s cool!';

PHP — Строки в двойных кавычках

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

$newline = "A newline is \n";
$return = "A carriage return is \r";
$tab = "A tab is \t";
$dollar = "A dollar sign is \$";
$doublequote = "A double-quote is \"";

Примечание: Если вы хотите вывести невидимые символы, такие как табуляция, например, то уже знакомый нам слеш поможет в этом!

На самом деле эти символы не очень полезны, ведь браузеры обрезают ненужные пробелы и табуляции, но в редких случаях они могут пригодиться. Табуляции, новые строки и возвраты каретки являются примерами экстра пробела. Тем не менее, при записи в файл, который может быть прочитан человеком, эти экранированные символы представляют собой ценный инструмент, т.к. помогают форматировать текст и приводят его в удобочитаемый вид!

PHP — Создание строки методом Heredoc

Два метода выше являются традиционными способами создания строки в большинстве языков программирования. PHP же представляет более надежный инструмент создания строк, который называется Heredoc. Он позволяет программисту создавать многострочные строки без использования кавычек. Однако, будьте осторожны с этим методов, ведь он сложнее и может привести к проблемам, если вы не правильно им воспользуетесь! Вот как это делается:

$my_string = <<<TEST
myblaze.ru 
- лучший 
сайт в мире
TEST;

echo $my_string;

Результат:

myblaze.ru - лучший сайт в мире

Есть несколько очень важных вещей, которые следует помнить при использовании Heredoc.
Используйте <<< и некоторые идентификатор, который вы выбрали, чтобы начать Heredoc. В этом примере мы выбрали TEST, как наш идентификатор. Повторное использование идентификатора с точкой с запятой, заканчивает создание строки методом Heredoc. Закрытие последовательности, должно происходить на отдельной строке и не может быть смещено! Кстати, при выводе полученной таким способом строки в браузере мы получаем одну строку, а не несколько, т.е. мы не использовали тег br внутри нашей конструкции. Именно поэтому несколько раз подумайте перед использованием этого метода. А действительно ли он вам нужен?

Echo | Содержание | Операторы

Комментарии:

  1. Миша — 04.03.2013 12:10

    Ниче не понятно! Обратный слеш скрывает следующий за ним символ, или просто отменяет его функционал и использует как обычные символы? И чем отличаются обычные кавычки от двойных в определении переменных?

  2. myblaze 09.03.2013 14:47

    Миша, обратный слеш экранирует следующий за ним символ. То есть этот символ не будет обрабатываться как служебный, а будет обычным текстом.
    Например:
    echo ″привет \″anonym\″ как дела?″;
    Использовали обратный слеш, чтобы следующий за ним символ — кавычки, обрабатывались не как кавычки, а как текст (то есть просто вывелись).

    Насчет кавычек вот цитата из статьи с хабра, отлично сказано:
    Два вида кавычек используются в PHP для вывода текста — простые (‘) и двойные (″). Разница между ними очень большая.
    В простых кавычках парсер ищет только простую кавычку (как символ конца) и обратный слэш (для ввода простой кавычки). В двойных же парсер умеет многое другое. Например — видеть переменные (echo ″Hello, $name!″;), символы (echo ″Hello\nworld!″;) и даже более хитрые переменные (echo ″${config[‘hello’]}, ${position}th world!″;).
    Очевидно, что простые кавычки побыстрее, парсеру почти не надо думать. Но самое главное — это читабельность кода. Конструкции в двойных кавычках не только тяжелее воспринимать взглядом, многие редакторы с подсветкой кода их не могут разглядеть.

  3. Станислав — 19.04.2013 14:35

    А можно же кавычки спец символом из html поставить также лучше будет

  4. Kirill — 29.12.2013 20:57

    Сделай Видео по урокам буду очень РАД (и может и другие)!
    Зарание Спасибо:)

  5. Kirill — 30.12.2013 11:30

    Я себе поставил Denver и пишу методом Heredoc.
    Захожу на localhost и пишет:
    $my_string = <<

  6. Farhad — 30.01.2014 17:22

    строки в двойных кавычквх вот что вывело, что то неправильно > $newline = «A newline is \n»; $return = «A carriage return is \r»; $tab = «A tab is \t»; $dollar = «A dollar sign is \$»; $doublequote = «A double-quote is \»»;

  7. Farhad — 30.01.2014 17:42

    хотяяя извеняюсь…
    вот>

    вот что вывело> A newline is A carriage return is A tab is но без симвлов , почему?

  8. myblaze 30.01.2014 21:53

    Farhad, я, если честно, не понял что у вас произошло)

  9. Гном — 04.08.2015 03:46

    Heredoc не рабаотает. -( Скопировала даже ваш код, всё равно, выдаёт ошибку -(

  10. Гном — 04.08.2015 03:46

    Parse error: syntax error, unexpected T_ECHO, expecting ‘,’ or ‘;’ in M:\home\test_sait\www\index.php on line 50

  11. Гном — 04.08.2015 03:48

    или, Parse error: syntax error, unexpected T_VARIABLE, expecting ‘,’ or ‘;’ in M:\home\test_sait\www\index.php on line 51

  12. Burzog — 26.12.2015 21:13

    Farhad уже вряд ли прочтёт этот комментарий, но если вдруг у кого-то будет такая же проблема.
    Обратный слэш нужен в случаях, когда внутри кавычек у вас есть служебный символ, который нужно вывести, как обычный текст. Например, в такой ситуации:

    Если бы не было обратного слэша, то echo вывел бы только «va», потому что после него стоит такая же одинарная кавычка, как и в начале.

    А вот \n, \t, \r и тому подобные сами по себе являются служебными символами. То есть, cлэш перед n нужен не для того, чтобы вывести n, как текст. \n следует рассматривать, как единый символ.

    А у Гнома всего лишь нет точки с запятой в конце 50-й и 51-й строк.

  13. Влал — 09.04.2016 08:47

    Если скопировать и вставить, то не работает, почему-то. Вручную переписал все норм. При копировании какой-то странный пробел или хрень какая то, между <<<TEST и myblaze.ru
    Который выдает т ошибку

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