Вывод двух переменных в php. Первый урок по PHP: особенности синтаксиса, вывод данных, переменные, работа с ошибками

Последнее обновление: 1.11.2015

Как и во многих языках программирования, в PHP есть переменные. Переменные хранят отдельные значения, которые можно использовать в выражениях на PHP. Для обозначения переменных используется знак доллара $ . Например,

Здесь определена переменная, которая будет хранить число 10. Присвоение значения происходит с помощью знака равенства = .

Можно присваивать значение другой переменной:

$a = 10; $b=$a; echo $b;

PHP является регистрозависимым языком, а значит, переменные $counter и $Counter будут представлять две разные переменные.

Также при наименовании переменных нам надо учитывать следующие правила:

    Имена переменных должны начинаться с алфавитного символа или с подчеркивания

    Имена переменных могут содержать только символы: a–z, A–Z, 0–9, и знак подчеркивания

    Имена переменных не должны включать в себя пробелы

Проверка существования переменной. Оператор isset

Если переменная объявлена, но ей изначально не присвоено никакого значения (иначе говоря она не инициализирована), то нам будет проблематично ее использовать. Например:

При попытке вывести значение переменной мы получим диагностическое сообщение о том, что переменная не определена: Notice: Undefined variable: a in C:\localhost\echo.php on line 3 .

Оператор isset() позволяет определить, инициализирована ли переменная или нет. Если переменная определена, то isset() возвращает значение true . Если переменная не определена, то isset() возвращает false . Например:

Для проверки переменной использовалась конструкция if...else , которая определяет истинность выражения. И если выражение истинно, тогда выполняется выражение после блока if. Если же выражение ложно (то есть равно false), выполняется выражение после блока else

Здесь переменная не инициализирована, поэтому оператор isset($a) будет возвращать значение false , и, следовательно, будет срабатывать блок else . Если бы мы присвоили переменной некоторое начальное значение, например, $a=20 , то оператор isset возвратил бы значение true , и браузер вывел бы ее значение.

С помощью оператора unset() мы можем уничтожить переменную:

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

Переменные устроены точно также. В них можно положить какое-нибудь значение и хранить там, пока оно не понадобится.

Создание переменных

Положить значение в переменную можно следующим образом:

В коде выше мы создали переменную $name и положили в неё значение Иван , затем создали переменную $age и присвоили ей значение 20 .

Название "переменная" означает, что её значение может меняться во время выполнения скрипта:

В некоторых языках переменную нужно сначала "объявить", а затем уже использовать. В PHP объявления нет - переменная создаётся в тот момент, когда вы кладёте в неё значение.
Тем не менее, PHP-программисты часто говорят "объявить переменную" вместо "создать переменную".

Также вместо "положить в переменную значение" часто говорят "присвоить значение".
Причина проста - символ = , благодаря которому мы сохраняем значение в переменную, называется "оператор присваивания". Отсюда и термин "присвоить".

Правила именования переменных

1. Название переменной начинается с символа $.

2. Вторым символом может быть буква или символ подчёркивания _

Названия переменных регистрозависимы. $name и $Name - это разные переменные.

Вывод значения переменной на экран

Вывести переменную можно с помощью уже известной нам команды echo :

Команда echo позволяет вывести на экран сразу несколько значений:

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

Также в PHP существует сокращённый синтаксис вывода переменных. Вместо

До версии PHP 5.4 сокращённый синтаксис работал только при включении в настройках PHP директивы short_open_tag , которая также позволяет использовать сокращённый открывающий тег

Проверка значения переменной

Команда echo не всегда удобна для проверки текущего значения переменной. К примеру, при попытке вывода пустой строки "" на экран не выведется абсолютно ничего. И непонятно, в чём причина - в пустой переменной или неработающем коде.

Поэтому для проверки значения переменной используется функция var_dump() :

Результат выполнения скрипта:

String(5) "Vasya" string(0) ""

Как видите, PHP вывел не только содержимое переменной, но ещё и количество символов, и даже тип переменной (string - строка). Типы данных мы подробно рассмотрим на следующих уроках.

Удаление переменных

Удалить существующую переменную можно с помощью функции unset() :

А теперь пришло время немного попрактиковаться.

Запомните, практически любая задача на PHP может иметь несколько решений. Поэтому если ваши решения будут отличаться от написанных на этом сайте - это совсем не значит, что вы что-то сделали неправильно.

Напишите скрипт, который:
1. Создаёт переменные с названиями title и content и какими-нибудь значениями.
2. Выводит значение переменной title внутри тега h1, а значение переменной content внутри тега div.

Показать решение

", $title, ""; echo "

", $content, "
"; ?>

Хочу ещё раз обратить ваше внимание, что это решение не является единственно верным. К примеру, следующий код приведёт к такому же результату:

Решил я написать эту статью, чтобы расставить точки как правильно и когда выводить данные. Статья не простая, поэтому если Вы ещё никогда не выводили текст ранее, то лучше начните с первого урока курса по PHP , а уже как опыта наберётесь, тогда заглядывайте сюда.

Чтобы вывести на экран текст мы используем одну из следующих конструкций языка: echo или print, либо функцию printf. Давайте разберём варианты и их особенности:

Функция printf позволяет нам вывести на экран отформатированный текст:
printf("%%b = "%b"", 322); // Вывести значение в двоичном представлении

Printf используется очень редко, самое популярное применение: преобразовать цену товара в классический вид: рубли.копейки. К примеру:

Если printf используют для вывода очень редко, то вот языковые конструкции print и echo - в каждом коде! Я говорю, что printf функция и значение надо писать в скобках по примеру выше, а вот echo и print - языковые конструкции и текст писать в скобках не надо:

Разница между echo и print есть, хоть смысл у них один и тот же. print может указывать лишь 1 значение, а вот в echo можно перечислять их через запятую:

Не смотря на это всё же можно вывести через один print 2 переменных и делается это с использованием конкатенации:

Конкатенация строк работает следующим образом, она СНАЧАЛА объединяет все в одну большую строку, а уже потом выводит один раз! С другой стороны мы не говорим по очереди "выведи то, выведи сё", мы говорим: у тебя выделено в памяти 1 байт под $x, и 1 байт под $y, объедини $x и $y в памяти и получи ещё одну временную строку в 2 байта (2 символа латинских), и потом выведи и очисти память. В итоге математики уже смогли посчитать. что при конкатенации будет занято уже 4 байта временно на данные, а при перечислении через запятую только 2.

На первый взгляд кажется, что запятая всё же круче в данном случае, но везде повсеместно используют точку. На самом деле ответ очень прост и его подтвердит любой эксперт - нет смысла заморачиваться и экономить на спичках, использование точки считается более классическим и делом привычки многих, и вы никогда в жизни не столкнётесь с тем, что сайт быстрее или медленнее работает из-за точки или запятой. Настоящая производительность сайтов кроется совсем в других вопросах (сложные операции, большой объем данных в Базе Данных)! Поэтому смело используйте то, что Вы уже ранее использовали, переучиваться нет смысла.

По поводу конкатенации стоит заметить самую важную и огромнейшую вещь - её используют для объединения переменной с переменной или строки с переменной, но объединять строку со строкой будет считаться плохим тоном:
Hello

World
"; // много тегов можно уместить в одной строке для вывода, не стесняйтесь

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

Завершая тему print и echo хотелось бы уточнить ещё второе отличие. print возвращает цифру 1 всегда после завершения выполнения, echo - нет. И вот на этом часто любят строить задачки такого плана для того, чтобы пошевелить мозгами:

И типовая задачка:

И тут Вы спросите, используется ли такое где-то? Ответ - НЕТ, это считается маразмом, и была бы моя воля, я print сделал бы лишь синонимом echo. Не смотря на то, что подобное никто никогда не использует, эта возможность до сих пор остаётся как развлечение для теоретиков.

Какие кавычки правильно использовать для вывода текста в PHP

Я не буду грузить Вам голову маразмом, итак одну вещь рассказал выше. Поэтому давайте сразу перейдем к тому, как правильно делать вывод!

Правило №1 - без кавычек мы пишем числа и переменные:

Правило №2: Одинарные кавычки используем когда хотим вывести в неизменном виде то, что содержится внутри кавычек, а это мы хотим сделать всегда:
Mr. Propper";

Заметьте, что теги отправляются в браузер в неизменном виде, а браузер, в свою очередь, обрабатывает их и выводит как теги, то есть уже отформатированный код. Снова же мы повторяем, что PHP - генерирует HTML, а не текст.

Исключения из правил, когда мы хотим вывести спецсимволы такие как знак больше или меньше, или целый блок HTML, то мы применяем функцию htmlspecialchars:
Mr. Propper");

Правило №3: двойные кавычки применяем, когда хотим вывести обработанную строку, то есть практически никогда. Не смотря на о, что следующий код сможет вывести переменную:

Данный код считается ужасным, банально потому что мы не можем читать наш код и не понимаем его поведение:
Глядя на код выше выведется Friends или FrienBeer ? Это называется не очевидным поведением, а значит в будущем ещё не раз поведение этого кода может быть изменено. Никогда не пишите код так, чтобы нельзя было его сразу быстрым взглядом понять. Правильно было бы:

Но не смотря на это мы двойные кавычки используем в двух случаях, когда нам надо вывести перевод строки (не HTML) либо спецсимвол:
В исходном коде страницы Вы можете увидеть как работает перевод строки \r\n и понять разницу.

Встраиваем вывод из PHP в HTML

PHP - лишь инструмент, способ вставить в HTML какую-то сгенерированную часть данных, поэтому мы используем PHP внутри HTML всегда. Простой вариант:

Указанный выше синтаксис многогранен, внутри конструкции PHP мы можем не только использовать echo, но и любые другие операции включая создание переменных и т.д. и т.п. Но если необходимо ТОЛЬКО вывести переменную или текст одним действием (только одним echo), можно применить сокращенный синтаксис:
"; $y = "b"; ?>

Самое интересное, это использовать совмещенный синтаксис для PHP и HTML:

Как вы видите, внутри итерации цикла можно выводить чистый HTML, достаточно закрыть конструкцию PHP и продолжить выводить HTML. Этот способ намного предпочтительнее обычного echo тем, что наш редактор кода IDE PHPStorm подсветит синтаксис кода и упростит разработку сайта.

Статья будет дорабатываться и совершенствоваться. Но даже сейчас я в ней обозначил все основные приёмы вывода текста и переменных в PHP

Заметка: активирована адаптивная версия сайта, которая автоматически подстраивается под небольшой размер Вашего браузера и скрывает некоторые детали сайта для удобства чтения. Приятного просмотра!

Здравствуйте, дорогие читатели, а в скором времени и PHP разработчики;) Сегодняшняя статья блога Site on! посвящена основам PHP: особенностям синтаксиса, выводу данных, переменным, а также работе с ошибками. По ходу цикла уроков по PHP я попытаюсь рассказать вам как можно больше всего интересного и полезного, при этом стараясь не растягивать статьи.

PHP блоки

Первое, что вы должны знать, это то, что PHP код всегда должен быть заключён в PHP теги:

Также можно использовать:

Первое , каждая инструкция (выражение) должна заканчиваться точкой с запятой; Например:

//говорим PHP, чтобы он показывал нам абсолютно все связанные с ним ошибки header("Content-Type: text/html; charset=utf-8"); // кодировка echo "Наш первый ПХП скрипт работает!
"; //выводим текст на страницу ?>

Второе , всё то же самое можно записать и в одну строку, между инструкциями в одной строке можно ставить сколько угодно пробелов, в том числе и вовсе без пробелов:

"; ?>

Третье , PHP инструкция может быть разорвана на несколько строк:

"; ?>

Результат:

Мы наблюдаем, что браузер интерпретировал каждый перевод строки как обычный пробел, чего и требовалось ожидать.

Четвёртое , в PHP как и во всех языках программирования есть комментарии. В PHP их 2 вида: однострочные и многострочные.

// - однострочный комментарий # - это тоже однострочный комментарий /* Ваш комментарий */ - многострочный комментарий

Бытует мнение, что у правильного программиста комментарии должны составлять 30% от всего кода. Однако избыточность комментариев тоже совсем не к чему, не стоит оставлять комментарии по типу «здесь я посмотрел в окно и почесал нос».

Вывод данных в PHP

Вывод данных в языке программирования PHP осуществляется по средствам двух основных языковых конструкций:

"; print "Это точно такой же текст"; ?>

Разница в том, что по выполнению print возвращает единицу, а echo ничего не возвращает. Если не знаете, как именно вам это использовать, то пользуйтесь echo и не заморачивайтесь, тем более при использовании echo можно делать так:

", "Наш первый ПХП скрипт работает!", "";
//тоже, но с помощью принта: print "

"; print "Наш первый ПХП скрипт работает!"; print "

"; ?>

Так что помимо того, что эхо само по себе короче принта на 1 символ, оно ещё позволяет и более коротко записывать выводимые конструкции. Каждая запятая в примере выше имитирует новый вызов эхо. Другими словами мы трижды вызвали эхо, вместо того чтобы каждый раз писать: echo echo echo, как делали это в случае с принтом.

Между прочим, тоже самое можно было записать и так:

Это я и имел ввиду в предыдущей статье, когда упоминал о том, что .

Переменные в любом языке программирования служат для хранения внутри себя какой-либо информации, то есть переменная – это наш сосуд. Мы можем положить туда сначала одно, потом убрать первое положить второе, а можем оставить первое и доложить ещё второе (и третье и тд.).

Переменные в PHP начинаются очень символично - со знака доллара $, после которого БЕЗ пробела должна идти либо латинская буква, либо символ подчёркивания (цифра не может быть первым символом в названии переменной). Далее в имени переменной могут присутствовать как латинские буквы, так и цифры, и всё тот же символ подчёркивания. Например:

$name="Сергей"; $_blog1="Site on!";
echo $name, " - автор блога ", $_blog1; ?>

Результат:

Имена переменных чувствительны к регистру! То есть $Name, $naMe, $name – три совершенно разных переменных. Если мы в уже существующую переменную захотим положить что-то новое, то старое значение этой переменной автоматически сотрется:

$name="Сергей"; $_blog1="Site on!"; $name="Андрей"; //записываем новое значение в переменную name
echo $name, " - автор блога ", $_blog1; ?>

Результат:

Естественно, мы можем передавать значение одной переменной в другую:

$name = "Сергей"; $_blog1 = "Site on!"; $name = $_blog1;
echo $name, " - автор блога ", $_blog1; ?>

Результат:

При этом значение переменной $_blog1 осталось в ней.

В отличие от строк, при занесении в переменную числа – кавычки не нужны:

$name = 45;

Как и при занесении переменной в переменную:

$name = $_blog1;

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

$name="Сергей"; $_blog1="Site on!"; $name=$_blog1; unset($name); //удаляем переменную name
echo $name, " - автор блога ", $_blog1; ?>

Результат:

Работа с ошибками в PHP

Вот мы плавно и перешли к теме ошибок в PHP. Как видите, мы обращаемся к переменной $name , которую перед этим безжалостно удалили – это и привело к замечанию (Notice). Notice нужно считать самой настоящей ошибкой, хотя в большинстве случаев он абсолютно безвредный.

PHP даже пытается нам подсказать, где и какую именно ошибку мы допустили. В нашем случае он пишет:

Undefined variable: name

Что переводится как «неопределённая переменная: name» и дальше показывает нам файл и строчку, на которой все это происшествие и случилось:

In Z:\home\localhost\www\blog2\second-page.php on line 10

То есть в файле second-page.php на строке 10 . В данном случае PHP угадал, однако часто бывает, что ошибка находится на одну или несколько строчек выше, например, когда мы забываем поставить точку с запятой в конце очередной инструкции:

$name="Сергей"; $_blog1="Site on!" //упс, забыл:(
echo $name, " - автор блога ", $_blog1; ?>

Результат:

В данном случае у нас появилась так называемая Parse error , которая запрещает выполнение всех скриптов на странице, а потому, кроме ошибки нам ничего не показало и не покажет до тех пор, пока мы её не исправим. Учитывая последствия - это серьёзная ошибка, которую, в отличие от предыдущей, обязательно нужно исправить! Но пугаться здесь нечего.

PHP пишет нам, что ошибка находится на восьмой строке (on line 8), однако на самом деле я забыл поставить точку с запятой на 2 строки выше:

Обращаю ваше внимание что, когда вы видите «syntax error, unexpected» , то в 99% случаев это значит, что вы забыли поставить точку с запятой.

Следующее, что вам нужно для себя обязательно запомнить: исправлять (фиксить) ошибки нужно сверху вниз! Так как одна ошибка зачастую может повлечь за собой десяток других, поэтому исправив самую первую – есть довольно большой шанс, что автоматически исчезнут и все остальные.

Есть ещё два вида ошибок, о которых обязательно должен знать каждый разработчик PHP – это FATAL error и Warning , которые также обязательно должны быть исправлены! Однако обе эти ошибки НЕ прекращают работу других PHP скриптов на странице, в отличие от Parse error.

При разработке интернет магазинов , сайтов, или любых скриптов, невозможно обойтись без переменных.

Во время выполнения скрипта данные нужно где-то хранить, для этого и существуют переменные. В переменных можно хранить любые данные (числа, строки) и нет привязки к типу.

Переменные в php начинаются со знака $, и могут состоять из латинских букв, цифр, и знака подчеркивания.

Запись и вывод переменных

Для работы переменными напишем небольшой скрипт:

Помимо записи и вывода переменных на экран, мы можем производить с ними математические операции:

На экране появиться число 15 . При выводе переменной на экран мы использовали двойные кавычки ("). Если использовать одинарные кавычки ("), то на экран будет выведено не значение переменной, а имя переменной. Например:

На экране мы увидим не Ответ: 15 , а «Ответ: $result ».

Работа с переменными одна из самых необходимых вещей в программировании на любом языке. Не возможно написать скрипт без использования переменных. Отнеситесь к ним повнимательней.

При разработке интернет магазинов, сайтов, или любых скриптов, невозможно обойтись без переменных. Во время выполнения скрипта данные нужно где-то хранить, для этого и существуют переменные. В переменных можно хранить любые данные (числа, строки) и нет привязки к типу.

OX2 2014-10-02 2014-10-02
Компьютер