php вывод текста и переменной | Особенности
Решил я написать эту статью, чтобы расставить точки как правильно и когда выводить данные. Статья не простая, поэтому если Вы ещё никогда не выводили текст ранее, то лучше начните с первого урока курса по PHP, а уже как опыта наберётесь, тогда заглядывайте сюда.
Чтобы вывести на экран текст мы используем одну из следующих конструкций языка: echo или print, либо функцию printf. Давайте разберём варианты и их особенности:
Функция printf позволяет нам вывести на экран отформатированный текст:
printf используется очень редко, самое популярное применение: преобразовать цену товара в классический вид: рубли.копейки. К примеру:
Если printf используют для вывода очень редко, то вот языковые конструкции print и echo — в каждом коде! Я говорю, что printf функция и значение надо писать в скобках по примеру выше, а вот echo и print — языковые конструкции и текст писать в скобках не надо:
Разница между echo и print есть, хоть смысл у них один и тот же. print может указывать лишь 1 значение, а вот в echo можно перечислять их через запятую:
Не смотря на это всё же можно вывести через один print 2 переменных и делается это с использованием конкатенации:
Конкатенация строк работает следующим образом, она СНАЧАЛА объединяет все в одну большую строку, а уже потом выводит один раз! С другой стороны мы не говорим по очереди «выведи то, выведи сё», мы говорим: у тебя выделено в памяти 1 байт под $x, и 1 байт под $y, объедини $x и $y в памяти и получи ещё одну временную строку в 2 байта (2 символа латинских), и потом выведи и очисти память. В итоге математики уже смогли посчитать. что при конкатенации будет занято уже 4 байта временно на данные, а при перечислении через запятую только 2.
На первый взгляд кажется, что запятая всё же круче в данном случае, но везде повсеместно используют точку. На самом деле ответ очень прост и его подтвердит любой эксперт — нет смысла заморачиваться и экономить на спичках, использование точки считается более классическим и делом привычки многих, и вы никогда в жизни не столкнётесь с тем, что сайт быстрее или медленнее работает из-за точки или запятой. Настоящая производительность сайтов кроется совсем в других вопросах (сложные операции, большой объем данных в Базе Данных)! Поэтому смело используйте то, что Вы уже ранее использовали, переучиваться нет смысла.
По поводу конкатенации стоит заметить самую важную и огромнейшую вещь — её используют для объединения переменной с переменной или строки с переменной, но объединять строку со строкой будет считаться плохим тоном:
Но есть одна маленькая особенность, когда нам необходимо будет использовать двойные кавычки для особой обработки строки (об этом чуть позже), тогда мы применим конкатенацию для строк:
Завершая тему print и echo хотелось бы уточнить ещё второе отличие. print возвращает цифру 1 всегда после завершения выполнения, echo — нет. И вот на этом часто любят строить задачки такого плана для того, чтобы пошевелить мозгами:
И типовая задачка:
И тут Вы спросите, используется ли такое где-то? Ответ — НЕТ, это считается маразмом, и была бы моя воля, я print сделал бы лишь синонимом echo. Не смотря на то, что подобное никто никогда не использует, эта возможность до сих пор остаётся как развлечение для теоретиков.
Какие кавычки правильно использовать для вывода текста в PHP
Я не буду грузить Вам голову маразмом, итак одну вещь рассказал выше. Поэтому давайте сразу перейдем к тому, как правильно делать вывод!
Правило №1 — без кавычек мы пишем числа и переменные:
Правило №2: Одинарные кавычки используем когда хотим вывести в неизменном виде то, что содержится внутри кавычек, а это мы хотим сделать всегда:
Заметьте, что теги отправляются в браузер в неизменном виде, а браузер, в свою очередь, обрабатывает их и выводит как теги, то есть уже отформатированный код. Снова же мы повторяем, что PHP — генерирует HTML, а не текст.
Исключения из правил, когда мы хотим вывести спецсимволы такие как знак больше или меньше, или целый блок HTML, то мы применяем функцию htmlspecialchars:
Правило №3: двойные кавычки применяем, когда хотим вывести обработанную строку, то есть практически никогда. Не смотря на о, что следующий код сможет вывести переменную:
Данный код считается ужасным, банально потому что мы не можем читать наш код и не понимаем его поведение:
Глядя на код выше выведется Friends или FrienBeer ? Это называется не очевидным поведением, а значит в будущем ещё не раз поведение этого кода может быть изменено. Никогда не пишите код так, чтобы нельзя было его сразу быстрым взглядом понять. Правильно было бы:
Но не смотря на это мы двойные кавычки используем в двух случаях, когда нам надо вывести перевод строки (не HTML) либо спецсимвол:
В исходном коде страницы Вы можете увидеть как работает перевод строки \r\n и понять разницу.
Встраиваем вывод из PHP в HTML
PHP — лишь инструмент, способ вставить в HTML какую-то сгенерированную часть данных, поэтому мы используем PHP внутри HTML всегда. Простой вариант:
Указанный выше синтаксис многогранен, внутри конструкции PHP мы можем не только использовать echo, но и любые другие операции включая создание переменных и т.д. и т.п. Но если необходимо ТОЛЬКО вывести переменную или текст одним действием (только одним echo), можно применить сокращенный синтаксис:
Самое интересное, это использовать совмещенный синтаксис для PHP и HTML:
Как вы видите, внутри итерации цикла можно выводить чистый HTML, достаточно закрыть конструкцию PHP и продолжить выводить HTML. Этот способ намного предпочтительнее обычного echo тем, что наш редактор кода IDE PHPStorm подсветит синтаксис кода и упростит разработку сайта.
Статья будет дорабатываться и совершенствоваться. Но даже сейчас я в ней обозначил все основные приёмы вывода текста и переменных в PHP
Php вывести строку как html код
Пока я творю, я живу!
Блог посвящен: HTML, CSS, PHP, WordPress, Bootstrap


Вывод переменной и строки в php на экран. Основы PHP с нуля. Урок №6
Всем привет!
Продолжаем изучать основы PHP с нуля!
В этом уроке я покажу, как вывести переменную или строку на экран.
Хочу познакомить вас с командами, которые в PHP как раз предназначены для вывода строки или переменной на экран.
Знакомьтесь :
— команда « echo »;
— команда « print »;
Команда «echo»
Команда «echo» выводит одну или более строк, а также содержимое, которое находится в переменных.
Обратите внимание на строки №3-№5.
Я использую пристыковку переменной и так следует делать всегда, иначе код выдаст ошибку.
Пробуем вывести строки и переменные через команду «echo» на экран.
Итак, внимательно делайте все так, как я пишу:
1). Запустите локальный сервер Денвер.
2). Откройте папку «php» и создайте там файл « echo.php » (это та самая папка, где я говорил, что буду создавать в ней файлы php по урокам ).
3). В файле « echo.php » пропишите вот такой код:
Вывод строки на экран
* Внимание: чтобы увидеть результат, пропишите в браузере в адресной строке «localhost/php/echo.php»
Вывод строки на экран и перенос строки
Для переноса строки используется стандартный html тег « <br> »
Результат (введите в браузере localhost/php/ echo.php ) :
Вывод переменных
В строке №4 на экран я вывел две переменные « $a », « $b » и строку со значком копирайт « © », в результате на экране вы увидите:
Вычисление переменных и вывод результата на экран
В предыдущем уроке мы учились создавать переменные и я с вами записал вот такой код для вычисления:
Переменная « $s » — будет выполнять пример с прибавлением и хранить в себе результат.
Переменная « $v » — будет выполнять пример с отниманием и хранить в себе результат.
Переменная « $g » — будет выполнять пример с умножением и хранить в себе результат.
Переменная « $h » — будет выполнять пример с делением и хранить в себе результат.
Давайте выведем результат на экран с помощью команды « echo »:
5 + 3=8
Или можно вывести просто результат: 8
5 — 3 = 2
Или можно вывести просто результат: 2
5 х 3 = 15
Или можно вывести просто результат: 15
5 / 3 = 1.6666666666667
Или можно вывести просто результат: 1.6666666666667
Экранирование переменных и вывод на экран
В предыдущей статье я писал, как выводится текст, если внутри содержатся двойные кавычки.
Вы, думаю, помните, что если вывести переменную вот так:
то в результате в браузере вы увидите синтаксическую ошибку:
Экранировать переменную, а точнее содержание, которое находится в переменной, можно знаком « \ »:
А можно обойтись и без экранирования, я изначально ставлю одинарные кавычки, а потом могу смело писать внутри двойные:
Престыковка переменных (конкатенация строк)
Конкатенация (престыковка) — это объединение двух или более строк в одну большую.
Объединение строк происходит с помощью оператора конкатенации — « . » (точка).
Вот два способа конкатенации:
Способ ⇒ 1
Способ ⇒ 2
Вы думаете, сможете обойтись без престыковки?
Увы, не всегда!
Вот например:
Уберите конкатенацию (престыковку) с примера «.»(точка):
В результате нарисуется синтаксическая ошибка:
Многострочные строки без использования кавычек с помощью синтекса Heredoc
Синтекс Heredoc позволяет создавать многострочные строки без использования кавычек.
Мой блог StepkinBLOG.ru
Здесь мы изучаем основы PHP
Пишем команду « echo », после чего указываем символ « <<< ».
Далее пишем идентификатор, это может быть любое слово, например, TEXT , STEPKINBLOG или BLOGGOOD и т.д. Но нужно помнить, что его необходимо указать и в начале и в конце. Например, если я указал идентификатор « STEPKINBLOG », значит такой же идентификатор должен стоять в конце кода:
Внимание: следите, чтобы в строке после « <<<STEPKINBLOG » (строка №2) и « STEPKINBLOG » (строка №7) не было пробела в конце строки, так как браузер выдаст вам ошибку.
Вывод строки и переменных на экран с учетом всех HTML тегов (php код в HTML)
Вы помните, для того, чтобы заработал php код, нужно не только сервер, но еще расширение файла « php ». То есть, можете смело открыть любой « html »файл и переименовать его в « php ».
Итак, php код можно вставить в любой « html » документ, только заменив в нем расширение на « php », например, было « index.html » стало « index.php ».
Был код чисто на html без php ( index.html ):
Стал html код со вставкой php ( index.php ):
Команда «print»
Команда «print» выводит одну или более строку, а также содержимое, которое находится в переменных.
Главное отличие « print » от « echo » в том, что она принимает только один аргумент и всегда возвращает « 1 ».
Попробуйте проделать все те же команды с « print », что мы проделали с « echo ».
На сегодня это все, жду вас на следующих уроках.
Php вывести строку как html код
(PHP 4, PHP 5, PHP 7, PHP 8)
echo — Output one or more strings
Description
Outputs one or more expressions, with no additional newlines or spaces.
echo is not a function but a language construct. Its arguments are a list of expressions following the echo keyword, separated by commas, and not delimited by parentheses. Unlike some other language constructs, echo does not have any return value, so it cannot be used in the context of an expression.
echo also has a shortcut syntax, where you can immediately follow the opening tag with an equals sign. This syntax is available even with the short_open_tag configuration setting disabled.
The major differences to print are that echo accepts multiple arguments and doesn't have a return value.
Parameters
One or more string expressions to output, separated by commas. Non-string values will be coerced to strings, even when the strict_types directive is enabled.
Return Values
No value is returned.
Examples
Example #1 echo examples
<?php
echo «echo does not require parentheses.» ;
// Strings can either be passed individually as multiple arguments or
// concatenated together and passed as a single argument
echo ‘This ‘ , ‘string ‘ , ‘was ‘ , ‘made ‘ , ‘with multiple parameters.’ , «\n» ;
echo ‘This ‘ . ‘string ‘ . ‘was ‘ . ‘made ‘ . ‘with concatenation.’ . «\n» ;
// No newline or space is added; the below outputs «helloworld» all on one line
echo «hello» ;
echo «world» ;
// Same as above
echo «hello» , «world» ;
echo «This string spans
multiple lines. The newlines will be
output as well» ;
echo «This string spans\nmultiple lines. The newlines will be\noutput as well.» ;
// The argument can be any expression which produces a string
$foo = «example» ;
echo «foo is $foo » ; // foo is example
$fruits = [ «lemon» , «orange» , «banana» ];
echo implode ( » and » , $fruits ); // lemon and orange and banana
// Non-string expressions are coerced to string, even if declare(strict_types=1) is used
echo 6 * 7 ; // 42
// Because echo does not behave as an expression, the following code is invalid.
( $some_var ) ? echo ‘true’ : echo ‘false’ ;
// However, the following examples will work:
( $some_var ) ? print ‘true’ : print ‘false’ ; // print is also a construct, but
// it is a valid expression, returning 1,
// so it may be used in this context.
echo $some_var ? ‘true’ : ‘false’ ; // evaluating the expression first and passing it to echo
?>
Notes
Note: Because this is a language construct and not a function, it cannot be called using variable functions, or named arguments.
Note: Using with parentheses
Surrounding a single argument to echo with parentheses will not raise a syntax error, and produces syntax which looks like a normal function call. However, this can be misleading, because the parentheses are actually part of the expression being output, not part of the echo syntax itself.
<?php
echo «hello» ;
// outputs «hello»echo( «hello» );
// also outputs «hello», because («hello») is a valid expressionecho( 1 + 2 ) * 3 ;
// outputs «9»; the parentheses cause 1+2 to be evaluated first, then 3*3
// the echo statement sees the whole expression as one argumentecho «hello» , » world» ;
// outputs «hello world»echo( «hello» ), ( » world» );
// outputs «hello world»; the parentheses are part of each expressionecho( «hello» , » world» );
// Throws a Parse Error because («hello», » world») is not a valid expression
?>Passing multiple arguments to echo can avoid complications arising from the precedence of the concatenation operator in PHP. For instance, the concatenation operator has higher precedence than the ternary operator, and prior to PHP 8.0.0 had the same precedence as addition and subtraction:
<?php
// Below, the expression ‘Hello ‘ . isset($name) is evaluated first,
// and is always true, so the argument to echo is always $name
echo ‘Hello ‘ . isset( $name ) ? $name : ‘John Doe’ . ‘!’ ;// The intended behaviour requires additional parentheses
echo ‘Hello ‘ . (isset( $name ) ? $name : ‘John Doe’ ) . ‘!’ ;// In PHP prior to 8.0.0, the below outputs «2», rather than «Sum: 3»
echo ‘Sum: ‘ . 1 + 2 ;// Again, adding parentheses ensures the intended order of evaluation
echo ‘Sum: ‘ . ( 1 + 2 );If multiple arguments are passed in, then parentheses will not be required to enforce precedence, because each expression is separate:
<?php
echo «Hello » , isset( $name ) ? $name : «John Doe» , «!» ;echo «Sum: » , 1 + 2 ;
See Also
- print — Output a string
- printf() — Output a formatted string
- flush() — Flush system output buffer
User Contributed Notes 4 notes
Passing multiple parameters to echo using commas (‘,’)is not exactly identical to using the concatenation operator (‘.’). There are two notable differences.
First, concatenation operators have much higher precedence. Referring to http://php.net/operators.precedence, there are many operators with lower precedence than concatenation, so it is a good idea to use the multi-argument form instead of passing concatenated strings.
<?php
echo «The sum is » . 1 | 2 ; // output: «2». Parentheses needed.
echo «The sum is » , 1 | 2 ; // output: «The sum is 3». Fine.
?>Second, a slightly confusing phenomenon is that unlike passing arguments to functions, the values are evaluated one by one.
<?php
function f ( $arg ) <
var_dump ( $arg );
return $arg ;
>
echo «Foo» . f ( «bar» ) . «Foo» ;
echo «\n\n» ;
echo «Foo» , f ( «bar» ), «Foo» ;
?>The output would be:
string(3) «bar»FoobarFooIt would become a confusing bug for a script that uses blocking functions like sleep() as parameters:
<?php
while( true ) <
echo «Loop start!\n» , sleep ( 1 );
>
?>vs
<?php
while( true ) <
echo «Loop started!\n» . sleep ( 1 );
>
?>With ‘,’ the cursor stops at the beginning every newline, while with ‘.’ the cursor stops after the 0 in the beginning every line (because sleep() returns 0).
We can use the ‘echo’ shortcut syntax with the conditional operator (expr1) ? (expr2) : (expr3)
<?php
$some_var = 10 ;
?>
Back to html :
<p class default»><?=$some_var > 5 ? «class1» : «class2» ?> «>Some text.</p>Will give : <p >Some text.</p>
<?php
$some_var = 4 ;
?>
<p class default»><?=$some_var > 5 ? «class1» : «class2» ?> «>Some text.</p>Will give : <p >Some text.</p>
If you have a large block of text, say your blog or something includes code examples, you may use the <<< operator (?) to define the start and end of your block to be echoed out. For instance:
<?php
echo <<< JAVASCRIPTfunction convertTroyOuncesToGrams(troyOunce) <
return troyOunce / 31.1034768;
>JAVASCRIPT; # End of block
?>
You may also embed PHP strings and other simple scalars into your blocks of text, for example:
echo <<< JAVASCRIPT
function convertTroyOuncesToGrams(troyOunce) <
return troyOunce / < $troyOunceAsGrams >;
>The following example shows how to output text with the echo command (notice that the text can contain HTML markup):
<?php
echo «<h2>PHP is Fun!</h2>» ;
echo «Hello world!<br>» ;
echo «I’m about to learn PHP!<br>» ;
echo «This » , «string » , «was » , «made » , «with multiple parameters.» ;
?>Как использовать PHP для вывода данных?
В PHP есть два способа получить вывод: ключевое слово echo или print . Эти два способа технически не являются функциями, поэтому их можно использовать без скобок.
На самом деле между ними нет никакой разницы. Они оба используются для вывода данных на экран.
Отображение строк и переменных с помощью Echo
Причина, по которой мы добавляем тег <br> в конце каждой строки, заключается в том, что PHP не разделяет строки автоматически по умолчанию. Без тегов разрыва код будет выглядеть следующим образом.
Как видите, разница состоит в том, что без тегов разрыва строки “слипаются”.
Вы можете отображать переменные с помощью echo без заключения их в кавычки.
PHP Echo и элементы HTML
С помощью функции echo можно отображать строки, числа и переменные. Однако простое отображение обычного текста выглядит довольно уныло.
Чтобы код смотрелся более привлекательно при отображении, почти всегда необходимо встраивать некоторые HTML-теги в команды. Здесь элемент-разделитель прикреплен к тексту.
PHP Echo и переменные
Чтобы отобразить переменные внутри HTML-тегов, можно добавить их в виде обычного текста.
В этом примере используются два разных синтаксиса: оба они приемлемы в данном случае.
Добавление атрибутов HTML
Приведенные выше примеры все еще выглядят довольно уныло. Чтобы сделать сайт более интересным, нужно добавить описания в HTML.
Чтобы добавить атрибуты, пишем их, как обычно, внутри каждого элемента. Главное отличие заключается в том, что вместо двойных кавычек мы используем одинарные.