РНР очень легко позволяет организовать вывод текста на экран. Рассмотрим пример скрипта:
Echo “Привет, мир!”;
Строго говоря, совсем не обязательно открывающий тег PHP писать именно так: «
Этот скрипт может быть расположен в любом месте HTML-документа, и сам по себе он не несет ничего полезного, так как только выводит на экран фразу “Привет, мир!”. Но таким образом мы знакомимся с одной из наиболее распространенных команд РНР – вывод информации на экран пользователя. Для того, что бы придать нашему скрипту полезные функции, давайте познакомимся с переменными.
Переменная характеризуется именем, типом и значением. Имя может быть любым и включать в себя цифры, буквы английского алфавита, и разрешенные символы (например, символ подчеркивания или тире). По типу переменные делятся на целые, с плавающей запятой и символьные. Значение в соответствии с типом может быть практически любым. Например – переменная a = 5. Это говорит нам о том, что имя у переменной – а, тип – целочисленный, значение – 5. Вот еще примеры имен и значений:
$file_type = “path/index.phtml”;
$os = “РНР для всех!”;
Как видите, все переменные в РНР (но не только в нем) должны начинаться с символа $, что позволяет интерпретатору безошибочно отличать их от команд РНР. В первой строчке нашего скрипта переменной $name присваивается значение 6, и эта переменная автоматически становится целочисленной.
Кстати говоря, заранее описывать тип переменной не требуется, как в языках Pascal или Visual Basic, но хотя разделение на типы чисто условное, каждая переменная автоматически стремится использовать правильный тип, соответственно значению.
Тут есть одна особенность, о которой я уже упоминал выше. Если мы попытаемся использовать неинициализированную переменную в работе, это посчитается интерпретатором за ошибку. Но в принципе, ошибкой это не является, так как переменная тут же будет проинициализирована и ее значение будет приравнено к нулю или пустой строке в зависимости от типа. Просто учитывайте этот факт.
Вторая строчка кода присваивает переменной $h12 значение 4.89, которое является значением с плавающей запятой. Третья и четвертая строчки кода присваивают своим переменным значения, являющиеся символьными строками. Все, что заключено в кавычки (включая цифры), будет интерпретировано как символьная строка. Если переменные не определены ранее, но используются, из значение принимается равным либо нулю, либо пустой строке в зависимости от типа.
Однако это справедливо, только если уровень обработки ошибок не выставлен на максимальный контроль. Если же это именно так, обращение к несуществующей переменной вызовет сообщение об ошибке, а программа как ни в чем не бывало будет работать дальше. Что бы подавить такое сообщение об ошибке, можно заранее описать все использующиеся в программе переменные, присвоим им значение «ноль» или «пустая строка». Второй вариант подавления ошибки – перед именем переменной поставить символ «@» (собака). Вот так: @$name; if (@$name) и т.д. Этот хороший символ играет роль подавителя сообщения об ошибке. Во как. Или настроить конфигурационный файл php.ini так, как описано выше.
Как и в любом языке, над переменными можно совершать любые арифметические действия в соответствии с обычной логикой, и это не требует присутствия специального оператора. Достаточно указать переменную для результата, знак равенства и перечислить в естественном порядке переменные или значения с необходимыми арифметическими знаками. Пример:
Результат работы скрипта – вывод на экран цифры 4. Поддерживаются все арифметические операции и функции, многоуровневые скобки, логические операции, операции увеличения или уменьшения на единицу и многое другое.
Кроме того, очень просто и естественно организуется сравнение: если – то – иначе. Для этого в РНР применяется конструкция:
If () { } else { }
Есть различные варианты синтаксиса этого оператора, но этот – основной, и самый логичный из всех. Вот его расшифровка в переводе на русский (а точнее – на алгоритмический) язык:
(если) if (условие) (то) { выполняется то, что заключено тут в кавычки } (иначе) else { выполняется то, что заключено тут в кавычки }
После кавычек ставить точку с запятой, как обычно между операторами, не обязательно. Но внутри кавычек – разделение операторов между собой проводится только через точку с запятой, если только там не один оператор. В этом случае не только точка с запятой, но и круглые скобки могут не ставиться.
Однако я не рекомендую Вам сильно увлекаться разными вариантами написания. Можно здорово запутаться и не обратить внимание на элементарную ошибку. Тем более что никаких ограничений в этих типах написания операторов нет. Так уж лучше пользоваться одним – понятным и удобочитаемым способом и не делать глупых ошибок.
Допускается вложение нескольких операторов проверки один в один. В этом случае надо быть очень внимательным к количеству закрывающих фигурных кавычек, так как при отсутствии даже одной из них интерпретатор выдаст ошибку кода.
Тут скрыта одна интересная особенность обработчика ошибок. Если Вы где-то забыли закрыть кавычку в начале кода, номер строки с ошибкой интерпретатор выдаст самый больший, что присутствует в файле с кодом. Бесполезно там искать неточность – ищите лучше там, где в последний раз вставляли условный оператор. Это является признаком того, что не закрыта или поставлена лишняя кавычка. Бывает, найти такую потерявшуюся кавычку очень сложно в большом скрипте, для этого заранее заботьтесь об удобочитаемости скрипта. Это сэкономит не один час отладки в дальнейшем.
Рассмотрим несложный пример:
If ($a == $b) { echo $b-$a; } else { echo $b.$a; }
При сравнении на истину применяется два знака равенства для того, чтобы интерпретатор мог без труда отличить сравнение от присваивания. Этот способ пришел в PHP из других языков программирования, и он достаточно известен в кругах программистов, так что ничего необычного тут нет.
Опять же – очень частая ошибка, программа не будет работать правильно, если Вы забыли поставить двойной знак равенства. И обратите внимание, интерпретатор даже не подумает предупредить Вас об этом! Для него это вполне приемлемая операция приравнивания и одновременно проверки условия на исину-ложь. Таких скрытых особенностей в PHP много и по мере продвижения мы будем с ними знакомиться. Кстати, этот приемчик с успехом можно применять для своей пользы, советую запомнить и взять на вооружение.
Результат работы вышеприведенного скрипта – 95, т.к. $a не равно $b, а команда echo $b.$a; (между переменными стоит точка, а не знак арифметической операции) выводит подряд указанные переменные. Таким образом, точка служит для склеивания строк или переменных.
Неравенство (ложь) обозначается символами!=, допустимы все остальные арифметические, логические символы и операторы (например – or, and, >, <= и т.д.).
В РНР есть средства для быстрого изменения переменной на единицу в сторону увеличения или уменьшения. Для этого нужно указать имя переменной, и за ним без знака равенства подряд два плюса или минуса соответственно. Например: $a++; - переменная $a будет увеличена на единицу.
Поддерживается одновременное присваивание одного значения нескольким переменным: $a = $b = 4; Обе переменных будут равны четырем. Вот еще несколько примеров нестандартных арифметических операций в РНР:
$b = $a = 5; /* присваиваем значения переменным $a и $b */
$c = $a++; /* последующее увеличение, присваиваем $c начальное значение $a (5)*/
$e = $d = ++$b; /* предварительное увеличение, присваиваем $d и $e увеличенное значение $b (6) */ /* тут и $d и $e равны 6 */
$f = double($d++); /* присвоить удвоенное значение $d до его увеличения, то есть 2*6 = 12, переменной $f */
$g = double(++$e); /* присвоить удвоенное значение $e после его увеличения, то есть 2*7 = 14, переменной g */
$h = $g += 10; /* сначала увеличить значение $g на 10, что дает в результате 24, а затем присвоить это значение переменной $h, что также дает 24 */
Простой пример
Вы можете просто набрать этот пример и вставить к себе на страничку, он будет непременно работоспособен. Простоту и доступность гарантирую. Чего уж тут сложного! Задача: вывести на экран через пробел числа 1,2,3,4,5. Код решения:
$i = 1; // присваиваем переменной $i значение 1
Echo $i; // выводим переменную
$i++; // увеличиваем переменную на 1-цу
Echo " ".$i; // опять выводим переменную не забыв о пробеле
// повторяем все снова и снова столько, сколько надо
Согласен, пример не самый лучший, но основные понятия языка уяснить можно. Итак - открывающий тег РНР - . Все переменные должны начинаться со значка доллара, а комментарии - с //.
Все переменные имеют имя и значение. В примере имя переменной - $I, значение - 1. Операторы языка в любом случае должны разделяться точкой с запятой. Отсутствие этого разделителя - самая основная ошибка начинающих, и поэтому всегда приучайте себя обращать внимание, есть ли в конце операторов разделитель. Лишние пробелы и переводы строк, как и подобает для хорошего языка программирования, просто игнорируются.
Вывод на экран осуществляется оператором «echo». Переменные не обязательно заключать в кавычки, текст - обязательно. Любое слияние текста (числовые переменные в этом случае воспринимаются как текстовые) осуществляется с помощью разделителя - точки.
Увеличение переменной на единицу реализовывается указанием двух плюсов после переменной, хотя ни что не мешает писать так - $i = $i + 1;. Но правильно будет так, как в примере - $i++; Выполнив эту инструкцию пять раз, соответственно увеличим переменную на пять, выводя между делом результат, не забывая о пробеле. На экран в результате работы скрипта будут выведены подряд (в строку) цифры "1 2 3 4 5". Если бы стояла задача вывести указанные цифры не в строчку, а в столбец - вместо пробелов в кавычках надо было бы поставить HTML-овский тег
перевода строки. Вот так - echo "
".$i;. В результате на экране появится столбик из пяти цифр.
Это - алгоритмическое выражение реализованного выше скрипта. Как видите, ничего сложного нет. Просто берем, и делаем то, что нам надо. Кстати, посмотрите, что получится в результирующем коде HTML! Ни следа РНР! Это ли не мечта многих - иметь возможность скрыть свой код HTML?
А ведь все это - не самые главные преимущества РНР. Но и не столь незначительные. Теперь Вы, я надеюсь, поняли, что код страницы можно клеить буквально на лету, и каждая новая страница будет абсолютно не похожа (если только это надо) не предыдущую. Вот именно для этих целей и создавался первоначально РНР, но на сегодняшний день язык превратился в нечто большее.
ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :раз.
Сегодня все современные веб ресурсы (сайты), невозможно представить без работы PHP или скриптовый язык. Язык PHP - является программным языком, для веб страниц, позволяющий не только передавать, но и обрабатывать данные. Например, формы обратной связи, внесение данных в базы, извлечение информации из баз и файлов, для вывода на экран и так далее.
Являясь программным языком, php не может интерпретировать (обрабатывать, преобразовывать) данные самостоятельно, без сторонних программ. Для его полнофункциональной работы, требуется виртуальный, или локальный хостинг, например такой как «Denwer», с поддержкой php.
Обычная php страница.
И так как было сказано выше, для работы php требуется хостинг. Запускаем «Denwer», если он у вас установлен, заходим и открываем папку «home». Создаём файл с именем виртуального сайта, например «myphp.ru», открываем её и создаём ещё одну папку «WWW». Далее открываем редактор «Notepad++», сохраняем новый файл, в пак myphp.ru > WWW, обозначив его как index.php. Теперь необходимо создать в нем основной код, такой же, как и HTML. Добавив обозначения между тегов
, , который скажет браузеру и интерпретатору, что здесь будет работать код PHP.
Как видим, наш код изначально не особо и отличается от HTML, с той лишь разницей, что появилась вставка для PHP кода и сам файл имеет такое же расширение.
Переменные и значения php.
Переменная в PHP начинается со значка «$ », дальше идёт название, или имя. Название в переменной может быть любое, но при этом должно состоять из латиницы и, ни в коем случае, не начинаться с цифр. Также желательно чтобы переменная носила осмысленный характер своего имени. Переменные используются для вывода информации, которая находится в их значениях. Например:
$goods = "Автомобиль";
В данном случае «$goods » это переменная, где «"Автомобиль";» значение переменной. Между ними находится знак «= », здесь важно запомнить, что это не знак равенство или равно, в PHP это значение «ПРИСВОИТЬ». То есть: переменной $goods присвоить = значение "Автомобиль"; .
Выводим значение переменных, на экран.
В PHP, для вывода информации на экран используются так называемый «Оператор вывода». Таких операторов, php имеет два это, оператор «echo » и оператор «print ». Оба оператора, не чем не отличаются друг от друга и имеют одну и, туже сущность, выводить информацию. Для примера воспользуемся оператором «echo» и выведем информацию, добавив туда нашу переменную «$goods ».
echo "
Товар: $goods
";Сохраним и перейдём в браузер, набрав в адресной строке «myphp.ru». И мы видим следующее: «Товар: Автомобиль». Если всё так значит, переменная работает и подставляет вместо себя значения, для вывода на экран.
Что бы легче понять, давайте представим, что мы работаем в автосалоне и наша задача вносить информацию, данные о поступлении товаров для вывода их на рекламно-информационный монитор. А теперь давайте напишем мини программу для этого монитора, сначала переменные:
$goods = "Автомобиль"; $name = "Форд"; $amt = "100"; $sales = "30"; $sum = $amt-$sales;
И так смотрим, первая переменная ($goods) отвечает за название товара. Вторая переменная ($name) наименование товара. Третья переменная ($amt) количество поступившего товара. Четвёртая переменная ($sales) количество проданного товара. И вот последняя переменная ($sum), в нашем случае самая интересная которой, в качестве значения присвоена третья переменная ($amt) минус четвёртая ($sales) переменная. То есть переменная $sales будет выводить на монитор уже посчитанное значение двух переменных.
($amt)-($sales)=($sum).
Теперь выведем информацию на монитор, с помощью оператора «echo».
Echo "
Товар: $goods
Наименование: $name
Количество: $amt
Продано всего: $sales
Остаток: $sum
";То есть тут надеюсь всё понятно, мы прописали основные значение наших пунктов, что где будет находиться и подставили переменные для вывода информации, которая может меняться впоследствии.
Рисунок № 1.
И представим, что нам сообщили с отдела продаж о реализации ещё пяти автомобилей. Соответственно нам необходимо поменять число 30 в переменной $sales на 35, а вот в переменной $sum всё произойдёт автоматический и на экране монитора сразу выведутся два новых значения в пунктах «Продано всего» и «Остаток».
Результат вывода переменных и их значений.
В результате получилась программка, которая способна сама производить подсчёт итоговой информации.
Наименование: $name
Количество: $amt
Продано всего: $sales
Остаток: $sum
"; ?>
Пожалуй, на этом можно и закончить. В следующий раз мы продолжим разговор о переменных, а если быть точнее, об ошибках, которые могут возникать при работе с ними и дополнительными возможностями.
Последнее обновление: 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() мы можем уничтожить переменную:
Решил я написать эту статью, чтобы расставить точки как правильно и когда выводить данные. Статья не простая, поэтому если Вы ещё никогда не выводили текст ранее, то лучше начните с первого урока курса по 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