RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

Вывод на экран и переменные в РНР

Автор: alex Сайт: http://rift.h11.ru     Рейтинг: N/A из 7       <<НАЗАД
   
    РНР очень легко позволяет организовать вывод текста на экран. Рассмотрим пример скрипта:
   
    <?php
   echo “Привет, мир!”;
   ?>
   
   Строго говоря, совсем не обязательно открывающий тег PHP писать именно так: «<?php». Вполне допустим вариант «<?», и именно им я и пользуюсь, если честно. Хотя это и не по стандарту. Но, если стандарт уже давно поддерживает оба варианта, почему бы второму тоже не стать стандартом? Короче, выбирайте то, что Вам больше всего нравится.
   
   Этот скрипт может быть расположен в любом месте HTML-документа, и сам по себе он не несет ничего полезного, так как только выводит на экран фразу “Привет, мир!”. Но таким образом мы знакомимся с одной из наиболее распространенных команд РНР – вывод информации на экран пользователя. Для того, что бы придать нашему скрипту полезные функции, давайте познакомимся с переменными.
   
   Переменная характеризуется именем, типом и значением. Имя может быть любым и включать в себя цифры, буквы английского алфавита, и разрешенные символы (например, символ подчеркивания или тире). По типу переменные делятся на целые, с плавающей запятой и символьные. Значение в соответствии с типом может быть практически любым. Например – переменная a = 5. Это говорит нам о том, что имя у переменной – а, тип – целочисленный, значение – 5. Вот еще примеры имен и значений:
   
    <?php
   $name = 6;
   $h12 = 4.89;
   $file_type = “path/index.phtml”;
   $os = “РНР для всех!”;
   ?>
   
   Как видите, все переменные в РНР (но не только в нем) должны начинаться с символа $, что позволяет интерпретатору безошибочно отличать их от команд РНР. В первой строчке нашего скрипта переменной $name присваивается значение 6, и эта переменная автоматически становится целочисленной.
   
   Кстати говоря, заранее описывать тип переменной не требуется, как в языках Pascal или Visual Basic, но хотя разделение на типы чисто условное, каждая переменная автоматически стремится использовать правильный тип, соответственно значению.
   
   Тут есть одна особенность, о которой я уже упоминал выше. Если мы попытаемся использовать неинициализированную переменную в работе, это посчитается интерпретатором за ошибку. Но в принципе, ошибкой это не является, так как переменная тут же будет проинициализирована и ее значение будет приравнено к нулю или пустой строке в зависимости от типа. Просто учитывайте этот факт.
   
   Вторая строчка кода присваивает переменной $h12 значение 4.89, которое является значением с плавающей запятой. Третья и четвертая строчки кода присваивают своим переменным значения, являющиеся символьными строками. Все, что заключено в кавычки (включая цифры), будет интерпретировано как символьная строка. Если переменные не определены ранее, но используются, из значение принимается равным либо нулю, либо пустой строке в зависимости от типа.
   
   Однако это справедливо, только если уровень обработки ошибок не выставлен на максимальный контроль. Если же это именно так, обращение к несуществующей переменной вызовет сообщение об ошибке, а программа как ни в чем не бывало будет работать дальше. Что бы подавить такое сообщение об ошибке, можно заранее описать все использующиеся в программе переменные, присвоим им значение «ноль» или «пустая строка». Второй вариант подавления ошибки – перед именем переменной поставить символ «@» (собака). Вот так: @$name; if (@$name) и т.д. Этот хороший символ играет роль подавителя сообщения об ошибке. Во как. Или настроить конфигурационный файл php.ini так, как описано выше.
   
    Как и в любом языке, над переменными можно совершать любые арифметические действия в соответствии с обычной логикой, и это не требует присутствия специального оператора. Достаточно указать переменную для результата, знак равенства и перечислить в естественном порядке переменные или значения с необходимыми арифметическими знаками. Пример:
   
   <?php
   $a = 5;
   $b = 3;
   $c = 4;
   $d = $a+$b-$c;
   echo $d;
   ?>
   
   Результат работы скрипта – вывод на экран цифры 4. Поддерживаются все арифметические операции и функции, многоуровневые скобки, логические операции, операции увеличения или уменьшения на единицу и многое другое.
   
   Кроме того, очень просто и естественно организуется сравнение: если – то – иначе. Для этого в РНР применяется конструкция:
   
    if ( ) { } else { }
   
   Есть различные варианты синтаксиса этого оператора, но этот – основной, и самый логичный из всех. Вот его расшифровка в переводе на русский (а точнее – на алгоритмический) язык:
   
   (если) if (условие) (то) { выполняется то, что заключено тут в кавычки } (иначе) else { выполняется то, что заключено тут в кавычки }
   
   После кавычек ставить точку с запятой, как обычно между операторами, не обязательно. Но внутри кавычек – разделение операторов между собой проводится только через точку с запятой, если только там не один оператор. В этом случае не только точка с запятой, но и круглые скобки могут не ставиться.
   
    Однако я не рекомендую Вам сильно увлекаться разными вариантами написания. Можно здорово запутаться и не обратить внимание на элементарную ошибку. Тем более что никаких ограничений в этих типах написания операторов нет. Так уж лучше пользоваться одним – понятным и удобочитаемым способом и не делать глупых ошибок.
   
   Допускается вложение нескольких операторов проверки один в один. В этом случае надо быть очень внимательным к количеству закрывающих фигурных кавычек, так как при отсутствии даже одной из них интерпретатор выдаст ошибку кода.
   
    Тут скрыта одна интересная особенность обработчика ошибок. Если Вы где-то забыли закрыть кавычку в начале кода, номер строки с ошибкой интерпретатор выдаст самый больший, что присутствует в файле с кодом. Бесполезно там искать неточность – ищите лучше там, где в последний раз вставляли условный оператор. Это является признаком того, что не закрыта или поставлена лишняя кавычка. Бывает, найти такую потерявшуюся кавычку очень сложно в большом скрипте, для этого заранее заботьтесь об удобочитаемости скрипта. Это сэкономит не один час отладки в дальнейшем.
   
    Рассмотрим несложный пример:
   
    <?php
   $a = 5;
   $b = 9;
   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; Обе переменных будут равны четырем. Вот еще несколько примеров нестандартных арифметических операций в РНР:
   
   <?php
   
   $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. Код решения:
   
   <?php
   $i = 1; // присваиваем переменной $i значение 1
   echo $i; // выводим переменную
   $i++; // увеличиваем переменную на 1-цу
   echo " ".$i; // опять выводим переменную не забыв о пробеле
   // повторяем все снова и снова столько, сколько надо
   $i++;
   echo " ".$i;
   $i++;
   echo " ".$i;
   $i++;
   echo " ".$i;
   ?>
   
   Согласен, пример не самый лучший, но основные понятия языка уяснить можно. Итак - открывающий тег РНР - <?php или просто <?. Тег закрытия кода в любом случае одинаков - ?>. Все переменные должны начинаться со значка доллара, а комментарии - с //.
   
   Все переменные имеют имя и значение. В примере имя переменной - $I, значение - 1. Операторы языка в любом случае должны разделяться точкой с запятой. Отсутствие этого разделителя - самая основная ошибка начинающих, и поэтому всегда приучайте себя обращать внимание, есть ли в конце операторов разделитель. Лишние пробелы и переводы строк, как и подобает для хорошего языка программирования, просто игнорируются.
   Вывод на экран осуществляется оператором «echo». Переменные не обязательно заключать в кавычки, текст - обязательно. Любое слияние текста (числовые переменные в этом случае воспринимаются как текстовые) осуществляется с помощью разделителя - точки.
   
   Увеличение переменной на единицу реализовывается указанием двух плюсов после переменной, хотя ни что не мешает писать так - $i = $i + 1;. Но правильно будет так, как в примере - $i++; Выполнив эту инструкцию пять раз, соответственно увеличим переменную на пять, выводя между делом результат, не забывая о пробеле. На экран в результате работы скрипта будут выведены подряд (в строку) цифры "1 2 3 4 5". Если бы стояла задача вывести указанные цифры не в строчку, а в столбец - вместо пробелов в кавычках надо было бы поставить HTML-овский тег <br> перевода строки. Вот так - echo "<br>".$i;. В результате на экране появится столбик из пяти цифр.
   
   Вообще, этот скрипт не правильный. Так никто не пишет программы. Надо было воспользоваться функцией или циклом, но на первых порах для знакомства я буду стараться все максимально упрощать. Вспоминая об упомянутом мною алгоритмическом языке, привожу алгоритм этого скрипта. Он таков:
   
   начать скрипт
   присвоить переменной $I значение 1
   вывести переменную $I на экран
   увеличить переменную $I на единицу
   вывести пробел и переменную $I на экран
   увеличить
   выполнять столько, сколько надо
   вывести пробел и переменную $I на экран
   закончить скрипт
   Это - алгоритмическое выражение реализованного выше скрипта. Как видите, ничего сложного нет. Просто берем, и делаем то, что нам надо. Кстати, посмотрите, что получится в результирующем коде HTML! Ни следа РНР! Это ли не мечта многих - иметь возможность скрыть свой код HTML?
   
   А ведь все это - не самые главные преимущества РНР. Но и не столь незначительные. Теперь Вы, я надеюсь, поняли, что код страницы можно клеить буквально на лету, и каждая новая страница будет абсолютно не похожа (если только это надо) не предыдущую. Вот именно для этих целей и создавался первоначально РНР, но на сегодняшний день язык превратился в нечто большее.
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool