Урок 3. PHP — Echo

Как вы видели в предыдущем уроке, команда echo в php является средством вывода текста. На протяжении своей карьеры в PHP вы будете использовать команду echo больше, чем любую другую. Так давайте в ней хорошенько разберемся!

Вывод строки

Для вывода строки, как мы делали в предыдущих уроках, используется echo. С ее помощью можно выводить текст в кавычках, значения переменных и т.д. Давайте рассмотрим на примере.

<?php
$myString = "Hello!";
echo $myString;
echo "<h5>I love using PHP!</h5>";
?>

Вывод фразы «Hello!» нам уже знаком, тут ничего нового. Зато следующая команда echo, как вы видите, содержит html тег. Использовать html теги не запрещается, ведь php дает нам динамику, а статика и оформление страницы все еще во власти обычного html.

Осторожно, двойные кавычки!

Это очень здорово, что вы можете выводить HTML внутри PHP. Тем не менее, вы должны быть осторожны при использовании HTML-кода или любой другой строки, содержащей кавычки! В Эхо используются кавычки, чтобы определить начало и конец строки, поэтому вы должны использовать один из следующих вариантов, если хотите использовать кавычки внутри echo:

  • Не используйте кавычки внутри строки.
  • Экранируйте внутренние кавычки через слеш. Чтобы избежать обработки внутренних кавычек, просто поставьте обратную косую черту прямо перед ними, то есть \».
  • Используйте одинарные кавычки (апострофы) на внутри строки.

Смотрите наш пример ниже для правильного и неправильного использования команды echo:

<?php
// This won't work because of the quotes around specialH5!
echo "<h5 class="specialH5">I love using PHP!</h5>";  

// OK because we escaped the quotes!
echo "<h5 class=\"specialH5\">I love using PHP!</h5>";  

// OK because we used an apostrophe '
echo "<h5 class='specialH5'>I love using PHP!</h5>";  
?>

Если вы хотите вывести строку, содержащую цитаты, либо используйте апостроф (‘), либо экранируйте кавычки поставив слеш перед ними (\»). Обратная косая черта скажет PHP, что вы хотите, чтобы символ после нее не был обработан интерпретатором!

Вывод переменных

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

<?php
$my_string = "Hello Bob.  My name is: ";
$my_number = 4;
$my_letter = a;
echo $my_string;
echo $my_number;
echo $my_letter;
?>

Результат:

Hello Bob. My name is: 4a

Одновременный вывод переменных и текстовых строк

Вы также можете выводить переменные в двойных кавычках (например, «текст текст $variable»). Поставив переменную внутри кавычек («») вы говорите PHP, что вы хотите, чтобы он взял ее значение, преобразовал его к строковому типу и вывел. Пример ниже показывает как правильно сделать такой трюк :)

<?php
$my_string = "Hello Bob.  My name is: ";
echo "$my_string Bobettta <br />";
echo "Hi, I'm Bob.  Who are you? $my_string <br />";
echo "Hi, I'm Bob.  Who are you? $my_string Bobetta";
?>

Результат:

Hello Bob. My name is: Bobetta
Hi, I'm Bob. Who are you? Hello Bob. My name is: 
Hi, I'm Bob. Who are you? Hello Bob. My name is: Bobetta

Размещая переменные внутри строки, вы можете сэкономить время и сделать код более удобным для чтения, но к этому надо привыкнуть. Не забывайте использовать кавычки, одинарные кавычки не будут выводить значения переменных. Одинарные кавычки просто выведут имя переменной в строку, т.е. $ my_string, а не «Hello Bob. My name is».

Echo не является функцией!

Echo является не функцией, а языковой конструкцией. При использовании функции в PHP, они имеют очень конкретную форму, которую мы обязательно рассмотрим чуть позже. На данный момент, просто знайте, что echo это специальный инструмент, который вы обязательно полюбите! :D

Конкатенация строк PHP

Самая, пожалуй, распространенная операция со строками — это их конкатенация, или присоединение к одной строке другой. Для конкатенации строк ввели специальный оператор «.» (точка).

Пример:


<?php 
$a= "Широка"; 
$b= $a." страна"; 
$b.=" моя родная!"; 
echo $b; 
?> 

На выходе получаем строку целиком: «Широка страна моя родная!».

Переменные | Содержание | Строки

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

  1. Tetsu — 03.05.2013 10:12

    когда мы присваиваем $my_letter = a
    нам разве не нужно взять a в кавычки?

  2. myblaze 03.05.2013 11:14

    Tetsu, можно взять в кавычки, а можно не брать, php самостоятельно определит тип переменной :)

  3. Игорь — 04.10.2013 14:58

    подскажите что означает такой код: «echo $i % 2» ? (Я про процент) $i числовая переменная

  4. myblaze 06.10.2013 19:57

    Игорь, это остаток от деления. Более подробно в уроке 5:
    http://myblaze.ru/urok-5-php-operatoryi/

  5. Kirill — 29.12.2013 19:26

    Добавь Переводы сайта вдруг кто-то с США сюда заглянет)))

  6. alex — 04.01.2014 13:55

    Интересно! Автору спасибо за труд…

  7. Джек — 13.11.2014 20:52

    Привет всем! Понимаю что переменные и их значения разделяются символом &. Кто-нить подскажите пожалуйста можно ли в этой директиве написать 1 символ & ?
    ($context[‘can_add_article’] && empty($context[‘topic_is_article’])
    Просто не пойму почему из тут 2…

  8. myblaze 13.11.2014 21:28

    Джек, два символа && это вообще-то логическое И, вы вырвали кусок из условия, там в начале наверняка еще одно empty стояло.

  9. Джек — 14.11.2014 00:51

    Понимаю, спасибо! Против логики, тем более гуру не попрешь, да и нет смысла. Что касается второго пункта.. в логах «Общих ошибок» в частности в файле Display.template.php постоянно получаю ошибки типа такой — строка 214 if ($context[‘can_add_article’] && !$context[‘topic_is_article’])
    В настройках сервера, админки параметры выставлены правильно. Можно было бы и «забить» на эти ошибки (не критично). Но мне интересно почему они выскакивают?
    Пробовал изменить корректировкой кода строки 214 на ($context[‘can_add_article’] && empty($context[‘topic_is_article’])) не выходит..
    Теперь появились ошибки аналогичного типа еще в строках, 121, 49, 216
    к примеру в строке 216… if ($context[‘poll’][‘view_voters’])
    С чем это может быть связанно? С модификациями? Вряд ли у меня их всего 12
    Или вот тоже самое,строка 214 — if ($context[‘can_add_article’] && !$context[‘topic_is_article’])
    ПРобовал править код, но изменение или вставка empty приводит к error fatal
    Вот такие пироги..

  10. Джек — 14.11.2014 00:56

    Сейчас строка 214 в файле Display.template.php выглядит так
    if ($context[‘can_add_article’] && !$context[‘topic_is_article’])
    а строка 216 так..
    if ($context[‘can_remove_article’] && $context[‘topic_is_article’])
    Сайт работает, но эти же ошибки появляются вновь и вновь.

  11. Джек — 14.11.2014 01:12

    Впрочем, извиняюсь за излишние вопросы. Учиться и учить еще очень много, чтобы понять или хотя бы приблизиться в истине. А уроки Ваши очень хороши!
    С Уважением Джек

  12. myblaze 14.11.2014 11:46

    Джек, я даже не знаю что за движок сайта у вас. Или может он вообще самописный. Что за файл такой display.template.php? Какие значения у элементов массива $context?

  13. Джек — 14.11.2014 17:31

    Здравствуйте myblaze ! Движок? ничего вроде не понятного, Simple Machines Forum (SMF) — бесплатный интернет-форум, написанный на PHP с использованием базы данных MySQL кстати на том же прекрасном php который вы знаете досконально ).
    Что касается файла Display.template.php то в структуре шаблонов SMF, он отвечает за
    список сообщений в теме форума.

  14. myblaze 14.11.2014 20:23

    Джек, при всем уважении, советую обратиться на форум сообщества этого движка. Согласитесь, где еще, как ни там, можно найти людей, которые могут знать об этой проблеме?

  15. Джек — 15.11.2014 11:39

    myblaze приветствую вас! Вообще то проблему как таковую решил восстановлением резервной копии.
    Соглашаюсь с вами, вы правы, я и являюсь участником
    такового форума где решаются подобные проблемы и вопросы.
    Задавая этот вопрос здесь у вас — это было излишним ) и в принципе я даже не рассчитывал получить вразумительный ответ. Ведь вы являетесь
    программистом или разработчиком языков программирования и по сути дела не обязаны решать, либо отвечать на подобные вопросы. Верно?
    А вот я буду и далее штудировать ваши замечательные уроки, за что вам спасибо!
    С Уважением Джек

  16. Рамик — 12.12.2014 17:52

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

  17. tronixit_uz — 24.12.2014 18:17

    Автор, Ваши уроки очень понятно и эффективно. Спасибо Вам огромное!

  18. Mrak — 14.07.2016 10:05

    Автор, тебе респект и уважуха — ты мой кумир! ))) Пока только сюда дочитал, но уже сильно помогло

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