PHP - Что такое РНР. PHP: базовые понятия языка

8 months ago | 35.9K

Всем привет, меня зовут Сергей Никонов, для тех кто меня не знает, расскажу немного о себе. Мой опыт в разработке веб-сайтов и веб-приложений более 10 лет и в этом видео я постараюсь ответить на один из самых часто-задаваемых вопросов - Какой язык программирования изучать первым?

Смотрите видео Первый язык программирования. Какой выбрать в 2018 году?

Сам по себе язык программирования - это просто инструмент, за счет которого достигается та или иная цель и все объектно-ориентированные языки программирования, имеют общие свойства, такие как переменные, массивы, функции, методы, классы, интерфейсы и другие свойства.

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

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

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

Какой же язык программирования выбрать в качестве первого?

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

Кто-то может возразить, сказать что PHP медленный, на нем пишут плохой код и т.д. но одним из ярких примеров является сайт Facebook. Он написан на PHP и по посещаемости сайт Facebook находится на 2м месте в мире, среди миллионов веб-сайтов. Кстати, социальная сеть вконтакте, также написана на PHP.

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

Достаточно часто мне задают вопрос:

Прежде всего необходимо понять, что HTML - это язык разметки, а не программирования и относится к верстке html-страниц. С помощью , вы объясняете браузеру, как должна выглядеть ваша страница, какого размера и цвета должны быть блоки на сайте.

Как начать программировать на PHP?

Программировать на PHP очень просто и все что вам нужно - это

PHP (англ. PHP: Hypertext Preprocessor -- «PHP: препроцессор гипертекста», англ. Personal Home Page Tools (устар.) -- «Инструменты для создания персональных веб-страниц») -- язык программирования, созданный для генерирования HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров. Входит в LAMP -- распространённый набор для создания веб-сайтов (Linux, Apache, MySQL, PHP (Python или Perl)).

Группа разработчиков PHP состоит из множества людей, добровольно работающих над ядром и расширениями PHP и смежными проектами, такими как PEAR или документация языка

В области программирования для Сети, PHP -- один из популярнейших скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения.

Кроме этого, он может использоваться для решения административных задач в операционных системах GNU/Linux, Microsoft Windows, Mac OS X и других версиях ОС. Однако в таком качестве он не получил распространение, отдавая пальму первенства Perl, Python и VBScript.

В настоящее время PHP используется сотнями тысяч разработчиков. Порядка 20 миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета.

Название PHP -- рекурсивная аббревиатура, означающая «PHP: Hypertext Preprocessor» (ранее акроним расшифровывался как «Personal Home Page Tools»). Изначально PHP создавался в качестве надстройки над Perl для облегчения разработки веб-страниц.

В 1994 году датский программист (ныне живущий в Канаде) Расмус Лердорф (Rasmus Lerdorf) написал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl -- интерпретатора скриптов -- перестало хватать, и Лердорф написал на языке C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter -- «Личная Домашняя Страница / Интерпретатор форм». PHP/FI включал базовую функциональность сегодняшнего PHP: оформление переменных в стиле Perl ($имя_переменной для вывода значения), автоматическую обработку форм и встраиваемость в HTML-текст и многое другое. Новорожденный язык отличался от своего прародителя более простым и ограниченным синтаксисом.

В 1997 году после длительного бета-тестирования вышла вторая версия обработчика, написанного на C -- PHP/FI 2.0. Её использовали около 1 % (приблизительно 50 тысяч) всех интернет-доменов мира.

PHP 3.0 была первой версией, напоминающей PHP, каким мы знаем его сегодня. В 1997 году два израильских программиста, Энди Гутманс (Andi Gutmans) и Зээв Сураски (Zeev Suraski), разработчики из израильского технологического института, расположенного в Хайфе, Израиль, переписали код с нуля: PHP/FI 2.0 был сочтён ими непригодным для разработки приложения электронной коммерции, над которым они в то время работали. Для совместной работы над PHP 3.0 с помощью базы разработчиков PHP/FI 2.0 Энди, Расмус и Зив решили объединиться и объявить PHP 3.0 официальным преемником PHP/FI, разработка же PHP/FI была практически полностью прекращена.

Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра. Впоследствии интерфейс написания расширений привлёк к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Фактически, это и был главный ключ к успеху, но стоит добавить, что немаловажным шагом оказалась разработка нового, намного более мощного и полного синтаксиса с поддержкой ООП.

Абсолютно новый язык программирования получил новое имя. Разработчики отказались от дополнения о персональном использовании, которое имелось в аббревиатуре PHP/FI. Язык был назван просто PHP.

К концу 1998 года PHP использовался десятками тысяч пользователей. Сотни тысяч веб-сайтов сообщали о том, что они работают с использованием этого языка. В то время PHP 3.0 был установлен приблизительно на 10 % веб-серверов Интернета.

PHP 3.0 был официально выпущен в июне 1998 года после 9 месяцев публичного тестирования.

PHP 4.0. К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Расширения дали PHP 3.0 возможность успешно работать с набором баз данных и поддерживать большое количество различных API и протоколов, но PHP 3.0 не имел качественной поддержки модулей и приложения работали неэффективно.

Новый движок, названный Zend Engine (от имён создателей, Зива и Энди, также основателей Zend Technologies), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника PHP 3.0. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

Прекращение выпуска обновлений PHP 4 было запланировано на конец 2007 года. Однако вплоть до 8 августа 2008 года выпускались критические обновления безопасности. С 9 августа 2008 года всякая поддержка версии PHP 4.x была прекращена.

PHP 5.0. Пятая версия PHP была выпущена разработчиками 13 июля 2004 года. Изменения включают обновление ядра Zend (Zend Engine 2), что существенно увеличило эффективность интерпретатора. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java. В частности, введён деструктор, открытые, закрытые и защищённые члены и методы, окончательные члены и методы, интерфейсы и клонирование объектов. Нововведения, однако, были сделаны с расчётом сохранить наибольшую совместимость с кодом на предыдущих версиях языка. На данный момент стабильной и наиболее популярной является версии PHP 5.xx.

  • 1 августа 2008 года анонсирована первая альфа-версия PHP 5.3.0, которая содержит ряд изменений и дополнений:
    • - Пространство имен
    • - Позднее статическое связывание и специальный метод __callStatic()
    • - Анонимные функции
    • - Addition of the intl, phar (phar is scheduled for some more work a head of alpha2), fileinfo and sqlite3 extensions
    • - Optional cyclic garbage collection
    • - Optional support for the MySQLnd replacement driver for libmysql
    • - Отмена поддержки версий операционной системы до Windows 2000 (Windows 98, NT4, и.т.д.)
    • - Новые синтаксические конструкции, такие как NOWDOC, ограниченный GOTO, короткий вид тернарного оператора "?:"

PHP 6.0. Шестая версия PHP находится в стадии разработки с октября 2006 года. В ней уже сделано множество нововведений, как, например, исключение из ядра регулярных выражений POSIX и «длинных» суперглобальных массивов, удаление директив safe_mode, php_magic_quotes и register_globals из конфигурационного файла php.ini. Также много внимания уделено поддержке Юникода. Загрузить текущую версию разрабатываемого кода для GNU/Linux/BSD и скомпилированные версии для Microsoft Windows можно на сайте PHP Snapshots.

Синтаксис PHP . Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

Для работы программы не требуется описывать какие-либо переменные, используемые модули, и т.п. Любая программа может начинаться непосредственно с оператора PHP.

PHP исполняет код, находящийся внутри ограничителей, таких как . Всё, что находится вне ограничителей, выводится без изменений. В основном, это используется для вставки PHP-кода в HTML-документ.

Помимо ограничителей , допускается использование дополнительных вариантов, таких как и . Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP (конструкции и могут быть выключены в конфигурационном файле php.ini).

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. В отличие от имён функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключённых в двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора $b; // Обращение к полю a объекта, т.к. $b = "a"

$obj->$c(); // Вызов метода function_name() объекта

Суперглобальные массивы. Суперглобальными массивами (англ. Superglobal arrays) в PHP называются предопределённые массивы. Большая часть этих массивов содержит входные данные запроса пользователя (параметры GET-запроса, поля форм при посылке методом POST, куки и т. п.).

Все суперглобальные массивы кроме $GLOBALS и $_REQUEST имеют устаревшие аналоги с длинными именами, которые доступны вплоть до пятой версии PHP (в шестой версии планируется их исключение). Таким образом, обращения $_GET["year"] и $HTTP_GET_VARS["year"] идентичны.

Массив всех глобальных переменных (в том числе и пользовательских).

$_SERVER (устаревший аналог -- $HTTP_SERVER_VARS)

Содержит переменные окружения, которые операционная система передает серверу.

$_ENV (уст. $HTTP_ENV_VARS)

Текущие переменные среды (англ. Environment variables). Их набор специфичен платформы, на которой выполняется скрипт.

$_GET (уст. $HTTP_GET_VARS)

Содержит параметры GET-запроса, переданные в URI после знака вопроса «?».

$_POST (уст. $HTTP_POST_VARS)

Ассоциативный массив значений полей HTML-формы при отправки методом POST. Индексы элементов соответствуют значению атрибута name элементов управления HTML-формы.

$_FILES (уст. $HTTP_POST_FILES)

Ассоциативный массив со сведениями об отправленных методом POST файлах. Каждый элемент имеет индекс идентичный значению атрибута «name» в форме и, в свою очередь, также является массивом со следующими элементами:

["name"] -- исходное имя файла на компьютере пользователя.

["type"] -- указанный агентом пользователя MIME-тип файла. PHP не проверяет его и поэтому нет никаких гарантий что указанный тип соответствует действительности.

["size"] -- размер файла в байтах.

["tmp_name"] -- полный путь к файлу во временной папке. Файл необходимо переместить оттуда функцией move_uploaded_file. Загруженные файлы из временной папки PHP удаляет самостоятельно.

$_COOKIE (уст. $HTTP_COOKIE_VARS)

Ассоциативный массив с переданными агентом пользователя значениями кук.

Содержит элементы из массивов $_GET, $_POST, $_COOKIE. С версии PHP 4.1 включает $_FILES.

$_SESSION (уст. $HTTP_SESSION_VARS)

Содержит данные сессии.

Объектно-ориентированное программирование . PHP поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка.

Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищёнными (protected) и скрытыми (private). PHP поддерживает все три основные механизма ООП -- инкапсуляцию, полиморфизм и наследование (родительский класс указывается с помощью ключевого слова extends после имени класса). Поддерживаются интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование классов не поддерживается, однако класс может реализовывать несколько интерфейсов. Для обращения к методам родительского класса используется ключевое слово parent.

Классы в PHP имеют ряд специальных методов (англ. Magic methods), начинающихся с двух символов подчёркивания. Особо стоит отметить конструктор (__construct(), в ранних версиях конструктором служил метод, одноименный с классом) и деструктор (__destruct()), а также методы чтения (__get()) и записи (__set()), свёртывания (__sleep()) и развёртывания (__wake()), клонирования (__clone()) и др. Эти методы являются достаточно гибким инструментом: переопределяя их, можно легко добиться существенного изменения поведения объекта.

Экземпляры класса создаются с помощью ключевого слова new, обращение к полям и методам объекта производится с использованием символов ->. Для доступа к членам класса из его методов используется переменная $this.

Размещенных в сети Интернет, написано с использованием html, языка разметки гипертекста. Существенный недостаток html – отсутствие динамизма. Эту проблему и призваны решать средства программирования вроде php. Скриптовый язык создает html-страницу на лету. Php внешне очень напоминает язык программирования C. Читайте далее и вы узнаете подробно, что такое PHP для чего PHP нужен и как работает PHP…

Первый вариант языка был создан в 1994 году программистом из Дании Расмусом Лердорф ом. Первоначально сокращение расшифровывалось как Personal Home Page («Персональная домашняя страничка»). С помощью нового скриптового языка можно было .

Новый этап в развитии проекта произошел в 1997, когда был заново переписан код интерпретатора. В следующем году вышла версия 3.0, php приобрел все черты мощного языка для web-разработок. Название стали расшифровывать как PHP: hypertext Preprocessor («ПХП: гипертекстовый препроцессор»). Разработчики свободного софта любят названия, которые содержат ссылки на самих себя.

Я как ведущий и разработчик данного блога, рекомендую вам бренд WebShake: webshake.ru/php-training-course . Перейдя по ссылке, каждый желающий сможет изучить язык PHP.

Еще одна удачная версия – 5.0, она поддерживала xml и имела расширенные возможности для объектно-ориентированного программирования. Шестая версия должна была поддерживать кодировку Unicode, но получился неудачным и был заморожен. В конце 2015 года была официально запущена версия 7.0.

Как это работает

Итак, на сервере хранится страничка, написанная на php. Пользователь набирает адрес этой странички в браузере. Что происходит после нажатия клавиши Enter? Сервер пошагово исполняет команды и отправляет пользователю результат в виде html-кода. Этот код отображается в окне браузера в виде текста, картинок, видео и так далее (контент). В процессе формирования внешнего вида странички может посылать дополнительные запросы к серверу. Обратите внимание, команды не выполняются непосредственно на компьютере пользователя браузером.

Простые примеры программ

Код программы заключается в специальные ограничители: Одна из базовых команд – echo, она выводит текст в окно браузера. Пример:

Php echo "Первая строка текста
А вот и вторая строка"; ?>

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

  • Целые;
  • Строковые;
  • Булевы (истина/ложь);
  • Десятичные числа;
  • Массивы;
  • Объекты.
  • Название переменной представляет собой набор латинских букв, цифр (в конце переменной) и символа подчеркивания (не в конце переменной); помечается символом «$». Пример использования переменных разных типов:

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

    • сложение (+);
    • вычитание (-);
    • умножение (*);
    • деление (/) – в результате всегда получается десятичное число;
    • остаток от деления (%).
    • Есть также операции увеличения на единицу (++) и уменьшения на единицу (—).

    Конструкции php очень напоминают аналогичные из языка C, поэтому не составит труда их освоить. Вот как выглядит применение двух разных операторов цикла для вывода последовательности чисел от 0 до 9:

    Реализация массивов отличается от аналогичной в языке C, в PHP широко применяются ассоциативные массивы (подробнее о них можно почитать ). Но никто не запрещает использовать массивы традиционным способом, например, так:

    В интерпретаторе используется множество встроенных функций – математических, строковых, для обработки времени и дат, графических и так далее. Вот неполный список . Пользователь может писать и собственные . Пример функции, которая определяет, может ли быть текстовая строка E-mail адресом:

    Познакомиться с основами языка можно .

    С чего лучше начать изучение php

    Если пользователю Windows необходимо изучить основы php, то с чего лучше начинать?

  • Скачайте (denwer).
  • Установите его. Процесс установки достаточно простой, нужно задать несколько параметров.
  • На «Рабочем столе» появятся три ярлычка. Запустите «Start Denwer».
  • На виртуальном диске (обычно он обозначается буквой Z) зайдите в каталог home, потом localhost, далее www. Удалите оттуда тестовую информацию и создайте свою программу под именем index.php.
  • Запустите браузер и наберите в адресной строке localhost. Если всё нормально – программу можно размещать на сервере.
  • Запустите «Stop Denwer».
  • Вот в принципе и все, что вам для начала нужно знать о языке программирования PHP. Если вы подписаны на мой блог, то вскоре узнаете о нем больше. До встречи!

    © Андрей Кухарчик
    Компьютерная газета

    Введение

    Интернет уже давно прочно вошел в нашу жизнь. Это смелое утверждение можно доказывать или опровергать много раз, но так или иначе все меняется, а с этим спорить никто не будет.

    Прошли те времена, когда многие пользователи персональных компьютеров в целях экономии дискового пространства удаляли программу "Интернет Эксплорер" из всеми нами обожаемой операционной системы, так как просто не нуждались в ней. Теперь даже те, у кого нет доступа к Паутине, стараются не трогать эту программу, так как форматы сети Интернет давно уже перешли в другие сферы нашей компьютерной жизни. А уж если в компьютере поселился модем, избежать наличия браузера просто невозможно, так как очень хочется хоть одним глазком посмотреть, а что же там, за гранью телефонной линии? И когда знакомство состоялось, отказаться от преимуществ сети уже не так-то просто. Через некоторое время начинаешь осознавать, что надо как-то вложить себя и свои идеи и проявиться на бескрайних просторах Глобальной сети. Сделать свою страничку стало даже престижно, и пусть в ней мало полезного, а счетчик фиксирует только Ваши не частые посещения, сделанное может стать началом серьезного проекта и изменить всю Вашу жизнь.

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

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

    История РНР

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

    По словам автора, РНР был написан буквально за день в промежутках между деловыми встречами. Сначала это была просто невзрачная CGI-оболочка, написанная на языке Perl, и служила она исключительно для специфических целей. Для справки - СGI (Common Gateway Interface) - общий шлюзовой интерфейс, является стандартом, который предназначен для создания серверных приложений HTTP.

    Такое приложение, которое называют шлюзом или CGI-программой, запускается сервером в реальном режиме времени. Сервер передает запросы пользователя CGI-программе, которая их обрабатывает и возвращает результат своей работы на экран пользователя.

    Таким образом, посетитель получает динамическую информацию, которая может изменяться в результате влияния различных факторов. Сам шлюз (скрипт CGI) может быть написан на различных языках программирования - C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script и других подобных языках. Но в случае с РНР, для написания его в первоначальном варианте был выбран язык Perl, как наиболее простой и доступный.

    В результате дальнейшей эксплуатации выяснилось, что оболочка обладает маленькой производительностью, и автор вынужден был переписать все заново, но уже на языке С, что позволило увеличить скорость работы РНР. Пользователи сервера, где располагался сайт с первой версией РНР, попросили себе такой же инструмент, и хоть автор не предполагал, что кто-то другой будет пользоваться этим языком, довольно быстро РНР перерос в самостоятельный проект, и в начале 1995 года вышла первая известная нам версия продукта. Имя этого первого пакета было Personal Home Page Tools (средства для персональной домашней страницы). На тот момент РНР обладал более чем скромными возможностями. Он имел простейший анализатор кода, который понимал несколько специальных команд, а также разные утилиты для использования на домашней странице, необходимые для построения таких полезных вещей, как гостевая книга, счетчик, чат, системы статистики и тому подобное. К середине 1995 года язык был основательно переработан, появилась обработка форм, были добавлены функции работы с базами данных, и в таком виде вышла вторая версия продукта.

    Сегодня РНР - это мощный кроссплатформенный набор средств, который располагается на сервере и предназначен для обработки специального кода, встраиваемого в HTML-страницу. Благодаря этому, появляется возможность легко создавать динамические сайты. Файлы, созданные таким образом, хранятся и обрабатываются на сервере, и когда посетитель запрашивает документ с РНР, скрипт обрабатывается не браузером посетителя, как, например, Java Script, а сервером, и посетителю передаются уже только результаты работы. Точно так же работает CGI-программа, написанная на С или Perl. Но, в отличие от CGI, код РНР можно встраивать в любое место HTML-странички, что является основным преимуществом по отношению к CGI. А кроме того, сам язык РНР очень прост для изучения и не требует каких-либо специфических знаний. Например, лично мне вполне хватило опыта, приобретенного лет десять назад на уроках информатики в школе, где мы изучали язык Бейсик на очень модных и дорогих тогда Ямахах. Несмотря на столь радужную характеристику, есть у РНР и недостатки. Стоит отметить довольно медленную (по сравнению с программами на CGI) работу скриптов РНР, а также сложность написания больших и сложных программ. Так или иначе, РНР остается интерпретируемым языком, что непременно ведет к ухудшению производительности в случае очень больших и сложных программ, но, для выполнения несложных манипуляций на сайте, РНР - лучший выбор. Недаром к середине 2000 года РНР использовался более чем на 2,5 миллионах сайтов!

    Особенности РНР

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

    Для программирования на РНР Вам понадобится любой текстовый редактор, но для удобства он должен обеспечивать подсветку синтаксиса и нумерацию строк. Я использую CuteHTML, входящий в комплект поставки неплохого FTP-менеджера CuteFTP последних версий. Редактор очень удобный, без лишних ненужных функций, сам встраивается в контекстное меню, не требует инсталляции и имеет все необходимое для программирования. Еще нам понадобится комплект для работы с РНР. Как правило, используется Apache+PHP, хотя это и не обязательно, подходит любой сервер, например IIS Microsoft. Но первый вариант бесплатен и имеет большую поддержку документацией (в том числе на русском языке) и форумами, где можно выяснить любой вопрос.

    Теперь давайте перейдем к делу - напишем наш первый скрипт. Для того чтобы сервер знал, в каком из файлов есть код РНР, его расширение (файла) нужно сделать либо phtml, либо php3, либо php. Строго говоря, может быть назначено любое расширение, но я рекомендую Вам в целях совместимости всегда использовать phtml. Каждая команда в РНР как правило начинается с "" (здесь и далее без кавычек). Как Вы помните, несколько команд разделяются точкой с запятой. В любом месте скрипта РНР можно поставить комментарий, начинается он с "/*", а заканчивается - "*/" Если комментарий маленький и занимает только одну строчку, можно поставить "//" и таким образом легко закомментировать любую строчку до ее конца. Как обычно, пробелы, символы табуляции и перевод строки просто игнорируются и могут применяться для улучшения читабельности кода РНР.

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

    Этот скрипт может быть расположен в любом месте HTML-документа, и сам по себе он не несет ничего полезного, так как только выводит на экран фразу "Привет, мир!". Но таким образом мы знакомимся с одной из наиболее распространенных команд РНР - вывод информации на экран пользователя. Для того чтобы придать нашему скрипту полезные функции, давайте познакомимся с переменными. Переменная характеризуется именем, типом и значением. Имя может быть любым и включать в себя цифры, буквы английского алфавита и разрешенные символы (например, символ подчеркивания или тире). По типу переменные делятся на целые, с плавающей запятой и символьные. Значение в соответствии с типом может быть практически любым. Например, переменная a=5. Это говорит нам о том, что имя у переменной - а, тип - целочисленный, значение - 5. Вот еще примеры имен и значений:

    Как видите, все переменные в РНР (но не только в нем) должны начинаться с символа $, что позволяет интерпретатору безошибочно отличать их от команд РНР. В первой строчке нашего скрипта переменной $name присваивается значение 6, и эта переменная автоматически становится целочисленной. Кстати говоря, заранее описывать тип переменной не требуется, как в языках Pascal или Visual Basic, но хотя разделение на типы чисто условное, каждая переменная автоматически стремится использовать правильный тип, соответственно значению. Вторая строчка кода присваивает переменной $h12 значение 4.89, которое является значением с плавающей запятой. Третья и четвертая строчки кода присваивают своим переменным значения, являющиеся символьными строками. Все, что заключено в кавычки (включая цифры), будет интерпретировано как символьная строка. Если переменные не определены ранее, но используются, их значение принимается равным либо нулю, либо пустой строке в зависимости от типа.

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

    Результат работы скрипта - вывод на экран цифры 4. Поддерживаются все арифметические операции и функции, многоуровневые скобки, логические операции, операции увеличения или уменьшения на единицу и многое другое. Кроме того, очень просто и естественно организуется сравнение если - то - иначе. Для этого в РНР применяется конструкция if () { } else { }. Есть различные варианты синтаксиса этого оператора, но этот - основной, и самый логичный из всех. (если) if (условие) (то) { выполняется то, что заключено в кавычки } (иначе) else { выполняется то, что заключено в кавычки }. После кавычек ставить точку с запятой, как обычно между операторами, не обязательно. Но внутри кавычек - разделение операторов между собой проводится только через точку с запятой. Допускается вложение нескольких операторов проверки один в один. В этом случае надо быть очень внимательным к количеству закрывающих кавычек, так как при отсутствии даже одной интерпретатор выдаст ошибку кода. Рассмотрим несложный пример:

    При сравнении на истину применяется два знака равенства для того, чтобы интерпретатор мог без труда отличить сравнение от присваивания. Результат работы скрипта - 95, т.к $a не равно $b, а команда echo $b.$a; (между переменными стоит точка, а не знак арифметической операции) выводит подряд указанные переменные. Неравенство (ложь) обозначается символами!=, допустимы все остальные арифметические и логические символы и операторы (например, or, and, >,