Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на PHP - вопросы и ответы.


Информационный Канал Subscribe.Ru

Здравствуйте! Выпуск номер 65
рассылки сайта РНР для всех!

Вы получили этот выпуск рассылки, так как являетесь подписчиком рассылок сайта http://subscribe.ru Рассылка выходит еженедельно, и предлагает Вам авторские материалы по теме программирования на скриптовом языке гипертекстового препроцессора РНР. Кроме того - есть система вопросов и ответов, обмен ссылками и баннерами, раздел Ваши письма и многое другое.
Форум сайта
Архив рассылки

Сайт автора

Наш хостинг для начинающих и профессионалов:

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

10 мегабайт места (минимум) + 300 (минимум) мегабайт трафика + Поддержка PHP, Perl, MySQL и пр. включена во все тарифные планы.
Дополнительные домены, поддомены, базы MySQL, POP3-аккаунты, FTP и пр. в любых количествах по желанию клиента - всего от 1 у.е. за 1 месяц.
Каждый клиент обеспечивается отдельной панелью DirectAdmin - это гибкие возможности по настройке и управлению собственным хостингом. Сервера расположены в Москве - Корбина. Оплата по Webmoney.ru или другие системы электронных платежей, есть персональный аттестат. Тестовый хостинг при заказе - 5 дней. Техническая поддержка - само собой.
Если вас интересует пример - http://204040.com - сайт достаточно тяжел, и можно посмотреть как он грузится. Кстати, расходует не более 800 мег трафика за месяц. И вместе с огромным каталогом и большой корпоративной почтой занимает около 50 мегабайт.

В связи с тем, что реклама тут просто запрещена, я не могу указать ссылку на данный ОЧЕНЬ недорогой хостинг, однако вы можете получить эту ссылку, если напишите мне на почтовый ящик admin@virtualbrest.com В теле письма или в теме просто укажите - информация о хостинге.

скачать предыдущие выпуски вместе с картинками можно тут.

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

 РНР очень легко позволяет организовать вывод текста на экран. Рассмотрим пример скрипта:

 <?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?

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

Наши друзья

http://virtual.brest.by - Виртуальный Брест. Региональный информационно - развлекательный портал города Бреста. Чат, форум, статьи, услуги, объявления, недвижимость, каталог сайтов - это и многое другое ждет Вас на страницах сайта.
http://price.brest.by - сайт прайсов фирм города Бреста. Поиск, подсчет, реклама и т.д.
http://204040.com - Интернет-магазин компьютерного салона Успех г. Брест
http://tweak.tut.by - http://tweak.bresttelecom.by - Оптимизация и настройка компьютера. Если Вас интересуют различные аспекты настройки Вашего мегагерцевого друга, Вам надо посетить сайт посвященный настройке и оптимизации. Кроме того - список последних версий популярных программ и свежие новости, а так же чат, форум и многое другое!

 

автор рассылки Андрей Кухарчик / http://virtual.brest.by/php



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное