Развитие языков программирования растёт с большой скоростью
Скачать 2.79 Mb.
|
PHP: Junior Kit 1 Предисловие от автора Развитие языков программирования растёт с большой скоростью. С каждым годом появляются новые языки программирования, фреймворки и библиотеки для того чтобы облегчить жизнь программисту. Можно было бы уже сказать что языки программирования которым уже больше 20 лет являются уже устаревшими и непригодными для написания приложений в наше время. Но по-настоящему все обстоит по-другому. Языки программирования которым уже больше 20 лет продолжают совершенствоваться и ставать все лучше и лучше. Или даже языки программирования которым где то 60 лет до сих пор используются, примером такого очень старого языка может служить FORTRAN который был создан компанией IBM в 50-х годах ХХ столетия. Одним из таких немного старых языков программирования является PHP, который появился в 1995. Этот язык можно назвать первым динамическим языком программирования для создания динамических веб-сайтов. 80% веб-сайтов всего мира были написаны на этом легендарном языке программирования. Этот пользуется популярностью и по сегодняшний день многими программистами. Каждый проводиться множество конференций где встречаются множество разработчиков, программистов, студентов которые программируют на этом языке программирования. Я считаю что этот язык программирования проживёт ещё очень долго и он будет ставать все лучше и лучше. Надеюсь что после того как читатель прочитает мою книгу и возьмет с неё знания, останется довольным и будет продолжать программировать и расти в этой отрасли. Все что надо, это имеет силу духа и желание чтобы изучать программирование ну и желательно также знать основы языка-разметки HTML. Поэтому желаю вам удачи в изучении программирования. PHP: Junior Kit 2 0 Добро пожаловать в PHP! Изучение какого-то языка программирования всегда начинается с того что автор знакомит читателя с небольшой историей изучающего языка программирования, и рассказывает о том где его можно использовать. Именно в этой главе мы рассмотрим где и как можно использовать PHP, а также установим нужное нам программное обеспечение для программирования. 0.1 Что такое PHP? В предисловии уже было сказано что РНР это язык программирования, но какой именно? Поскольку языки программирования также разделяются на какие то группы. Во первых это язык веб-программирования, то есть язык программирования для создания веб-приложения, веб-сайтов и т.д. Во вторых это язык Объектно-Ориентированного-Программирования, то есть РНР работает по принципу ООП (Объектно-Ориентированного-Программирования) и в этом языке все построено на объектах, классах и т.д., но об этом мы поговорим позже. Об том что такое ООП пойдет ещё речь в этой книге, сейчас читателю рано знать что это такое. РНР был создан в 1995 году программистом Расмусом Лердоформ. Кстати Расмус уже давно пошёл с разработки и улучшения этого языка программирования. Думаю вас заинтересовала как расшифровывается аббревиатура РНР. А расшифровывается она так: Hypertext Preproccesor - PHP: Junior Kit 3 “Препроцессор Гипертекста”. Проект имеет открытый код и распространяется по собственной лицензии. Сейчас над РНР работает группа энтузиастов с компании Zend Engine. Думаю в некоторых читателей возник вопрос о том что такое динамические веб-приложения. Динамическое веб-приложение это как бы сказать “живое” приложение, само слово динамика значит движение. То есть динамическое веб-приложение как бы движется постоянно, к примеру веб-приложение может работать с БД(База Данных) и пользователем одновременно. Я надеюсь что читатель ознакомился с основами языка разметки HTML, и знает что на HTML создаются статические веб-страницы на которых ничего не происходит, кроме отображения внешнего вида. То есть, примеру через HTML не возможно можно сделать так чтобы делались запросы к базе данных. Статика - это когда нет движения, если говорить на языке художников. 0.2 Как работает сервер PHP не встроенный в браузер как HTML. Он работает отдельно на своем сервере. И перед тем как мы приступим к установке нужного для нас программного обеспечения, мы должны понять как именно работает сервер, поскольку мы будем устанавливать локальный сервер на котором и будет установлен РНР. Думаю некоторые читатели сразу же не поймут о чем я тут говорю, поскольку только что я сказал что мы будем устанавливать локальный сервер с РНР. Некоторые возмутятся, поскольку на их мысль язык программирования не надо устанавливать, а его можно же использовать сразу. Нет, язык программирования надо устанавливать, к примеру для того чтобы мы могли программировать на языке программирования Ruby нам надо будет установить его в на свой ПК. И такое же самое надо будет сделать с языком Python, если мы конечно хотим его использовать. Ничто не откуда не берется. РНР не встроенный в браузер как HTML, он PHP: Junior Kit 4 работает на отдельном сервере. И поэтому мы должны установить локальный сервер, если мы хотим программировать на РНР. Хорошо, а теперь давайте вернемся к установке локального сервера. Когда вы к примеру пишите адрес какого то сайта в адресной строке в браузере, и потом переходите на сайт, то вы посылаете запрос серверу на котором находиться тот сайт адрес которого вы ввели в адресной строке. Сервер вам отвечает содержимым сайта, и после получения ответа вы можете спокойно лазить по сайту и просматривать его содержимое. То есть сервер имеет запрос и ответ. То есть, запрос делает пользователь для того чтобы получить какие-то данные от сайта, а сервер в свою очередь отвечает пользователю данными. Существуют разные виды запросов, кроме тех запросов что используются для того чтобы получить содержимое сайта. К примеру, пользователь может сделать запрос на то чтобы внести какие-то данные в базу данных веб-сайта. Об том какие существуют виды запросов и как их можно делать с помощью РНР мы поговорим в разделе «PHP и HTTP». Чтобы лучше вам запомнилось как работает сервер я вам нарисовал внизу небольшую простую схему, показанную на Рис. 0: - Рис. 0 – Схема показывающая работу сервера Теперь когда я вам объяснил поверхностно то как работает сервер, мы можем приступать к установке нужного для нас программного обеспечения и локального сервера. PHP: Junior Kit 5 0.3 Установка локального сервера Выбор локального сервера - это довольно таки важный вопрос. Поскольку вам понадобиться локальный сервер с поддержкой PHP 7.0 или выше. Кроме этого надо чтобы локальный сервер имел HTTP сервер Apache. Но это ещё не все, нам понадобиться также сервер с поддержкой БД (Баз данных) и СУБД(Система-Управления-Баз-Данных) MySQL. На счастье нам не надо будет все устанавливать по отдельности, поскольку уже существуют полноценные сборки в которых уже есть установлены все нужные для нас компоненты. Мы будем использовать локальный сервер XAMPP, он имеет все те компоненты для разработки. Можете заглянуть на официальный сайт по адресу: http://apachefriends.org/ru/index.html. - Рис. 1 - Главная страница официального сайта локального сервера XAMPP Выбирайте XAMPP для вашей операционной системы. Пока я пишу эту книгу, то я использую ОС Windows. Желательно чтобы был PHP: Junior Kit 6 XAMPP с версией PHP 7.0 или выше. Скачайте установщик XAMPP. После того как установщик загрузиться откройте его. После того как установщик откроется вы увидите сначала сообщение о том что это установщик XAMPP. Дальше вам будет предложено выбрать компоненты которые вы хотите установить как это показано на Рис.1 - Рис.2 - Выбор установки компонентов в установщике XAMPP Поскольку мы будем устанавливать XAMPP по умолчанию, то мы не будет ничего изменять в списке компонентов. Дальше нам уже надо буде выбрать место куда мы хотим установить локальный сервер. Обычно по умолчанию XAMPP устанавливается в корневую папку диска С:. PHP: Junior Kit 7 Вы конечно же можете сами выбрать место на вашем компьютере где вы хотите установит XAMPP. После того как вы выбрали место для «next», то начнется процесс установки XAMPP. Если все установилось и прошло успешно, то тогда мы можем продолжать. А теперь я объясню где и что находиться. В главной папке находиться 3 приложения с префиксом xampp. Все они нужны для того чтобы запустить, остановить и контролировать локальный сервер XAMPP. К примеру приложение xampp_start.exe нужно для того чтобы запустить локальный сервер, а xampp_stop.exe чтобы остановить локальный сервер. Запустите локальный сервер, это может зайнять немного времени. После этого откройте браузер и перейдите по адресу localhost/. В браузере должна будет появиться домашняя страница локального сервера. Это страница локального сервера где мы можем посмотреть настройки локального сервера, узнать информацию о том что нам делать, посмотреть какие расширения установлены и т.д.. Если у вас будет отображаться содержимое и будет приветствие, то значит что у вас запустился локальный сервер и правильно работает. 0.4 Редактор кода У нас есть локальный сервер, значит можно приступить к выбору редактора кода. Думаю некоторые читатели зададутся вопрос, а зачем нам редактор кода? Редактор кода, как вы уже смогли понять – это приложение которое позволяет редактировать код, но суть в том что это как обычный редактор текста, только есть подсветка синтаксиса языка программирования, нумерация строк и многое другое что позволяет эффективно писать код. Вообще можно использовать встроенный редактор текста в вашей операционной системе. К примеру в Windows это программа “блокнот”, но будет намного лучше использовать редактор кода, поскольку у вас будет подсветка синтаксиса как я уже и говорил, и подсветка ошибок в PHP: Junior Kit 8 коде если они будут в коде. Я рекомендую использовать редактор кода Sublime Text 3, им пользуется много программистов, и я также. Он бесплатный и его очень легко использовать. Но кроме этого редактора кода также существует приложение Notepad++, которое имеет похожие функции на Sublime Text. Если вы установили локальный сервер и редактор кода, то мы можем переходить к следующему разделу и начинать уже учиться программировать на РНР. PHP: Junior Kit 9 1 Первые шаги Когда новичок в программировании начинает изучать какой то язык программирования, то есть такая традиция программистов как написать свою первую программу, которая бы выводила на экран одно сообщение “Hello World!”, т.е. «Привет мир!». Поэтому не будем нарушать традиций программистов и повторим эту же традицию. Заодно вы получите свой первый опыт с написанием простой программы. Но перед этим как мы начнём это делать, нам надо разобраться с тем как создать директорию для нашего небольшого приложения. В папке xampp(папка локального сервера) есть директория htdocs, именно в этой папке и храняться приложения которые мы будем запускать на локальном сервере. Создайте папку app в этой папке, это и будет папка с нашей первой программой. А теперь откройте редактор кода и скопируйте этот код: ?> После этого сохраните этот код в папке нашего первого приложения, назовите файл index и сохраните его в формате *.php. Запустите локальный сервер если он у вас ещё не был запущен, потом перейдите в браузер по адресу localhost/app/index.php. Вы видите надпись «Hello world!»? Если да то тогда это значит что вы сделали все правильно! Можно продолжать двигаться дальше, и следующим с чем надо будет разобраться это синтаксис языка программирования РНР. Так званые PHP теги создают часть кода РНР который будет выполняться. То есть когда локальный сервер будет запускать файл то когда он прочитает эти теги то начнёт выполнять код который внутри этих тегов. Это если говорит на простом языке. Следующее что идет после наших тегов это команда echo, которая PHP: Junior Kit 10 служит для того чтобы выводить на экран текстовые данные которые внутри кавычек. Это вы может заметить в коде. К примеру, в нашем первой программе в кавычках было записано «Hello world!», и после того как мы запустили этот скрипт в браузере, то на странице вывелась та самая надпись которая была в кавычках. То есть, надпись «Hello world!». В конце команды echo мы поставили точку с запятой, объясню зачем она ставится. Точка с запятой ставиться чтобы завершать выполнение какой то определенной команды в коде. Такое есть во многих языках программирования. Если мы не поставим точку с запятой, то произойдет ошибка и после того как мы перейдем на страницу с нашим приложением то мы увидим только сообщение от РНР что произошла синтаксическая ошибка и будет показан номер строки в которой не закрыли команду точкой с запятой. Точки запятой надо всегда ставить, для новичка в программировании это будет смотреться немного дико, но в примерах этой книги вы увидите где и как ставятся точки с запятой в коде. Думаю я объяснил все довольно таки простым и популярным языком, и надеюсь вы смогли понять о чем именно я говорю. Дальше будут идти более сложные примеры чтобы вы могли усвоить материал. Поэтому переходим к следующему подразделу. 1.1 Комментарии в коде Очень нужной вещью в программировании и в написании кода являются комментарии. Комментарии в РНР это строки которые можно увидеть только в коде, их суть заключается в том чтобы дать какие то подсказки в определенной части кода для разработчика. Когда программа начинает выполняться то она игнорирует комментарии. То есть вы можете писать все то что захотите в комментариях, и эти строки не будут прочитаны, поскольку они будут просто проигнорированы. Если к примеру в комментариях будет записана какая то команда то она проста не выполниться, а будет проигнорирована интерпретатором РНР. PHP: Junior Kit 11 Интерпретатор это программа которая выполняет определенный скрипт. Комментарии объявляются с помощью двоих слэшов: // А эта строка будет проигнорирована // echo “Ну а эта команда будет // также проигнорирована”; echo “Программирование это круто”; // Эта строка кода будет выполнена ?> Я думаю читатель задаст вопрос, в чем же смысл комментариев если они игнорируются интерпретатором? Поверьте, когда вы будете писать какое-нибудь большое приложение с тысячами строками кода, а также с кучей всяких функцией то вам понадобиться использовать комментарии в коде чтобы описать что делает та или иная функция чтобы не заблудиться. То есть, к примеру, у вас будет большая функция которая имеет 300 строк кода, чтение этих 300-от строчек кода может занять время. И поэтому чтобы не читать все эти строчки кода, можно будет просто прочитать комментарий который вы создали чтобы на случай такой ситуации понять что делает данная функция. Кроме двоих слэшов комментарии можно также объявлять так: # Это также комментарий /* А это вообще блок с комментариями. Здесь можно писать много чего */ ?> PHP: Junior Kit 12 И вообще в книге автор будет много раз использовать комментарии чтобы описать некоторые части кода в примерах. Это чтобы читателю было легче понять что делает тот или иной скрипт. 1.2 Переменные в PHP Я надеюсь что читатель учил алгебру и помнит о таком математическом понятии как переменные. Но не надо сразу же думать что если вы хотите научиться программировать на РНР, то надо сразу же учить алгебру. Чтобы стать программистом математику не надо знать. Если вы не знаете что такое переменные, то давайте я вам приведу небольшую аналогию с ящиками. Переменные можно описать как ящик которому вы даете название и можете что то положить в него. К примеру мы можем назвать наш ящик pizza и спрятать внутри него бумажку с надписью “Паперони”. А теперь если объяснить все это на техническом языке то выходит так, что переменная имеет свое название и значение. В нашем примере ящик был примером простой переменной, мы дали название ящику pizza, то есть название переменной, а также дали значение переменной, а точнее присвоили значение «Паперони». То значение которое мы присвоили нашей переменной имеет текстовый тип данных, что такое типы данных мы поговорим дальше. А сейчас давайте лучше поговорим о том как можно объявлять переменные в РНР. Надеюсь что вы поняли что такое переменная и что теперь мы сможем начать реализовать переменные в РНР. Переменные в РНР объявляются с помощью знака доллара $, после чего мы вводим название переменной(без пробела после знака доллара) и присваиваем ей значение с помощью оператора =. Пример создания переменной в РНР: $pizza = "Паперони"; // Здесь мы присвоили текстовые данные и дали название pizza ?> PHP: Junior Kit 13 Попробуйте сейчас создать свою переменную с со своим названием на примере только что показанного примера. Если бы в РНР не было бы переменных то я очень сомневаюсь что смог бы вообще существовать этот язык программирования. Существуют также правила по объявлению переменных которых надо придерживаться если вы хотите чтобы ваш код работал правильно и не было никаких ошибок. Во первых название переменной не должно начинаться с цифр. Во вторых название переменной должно быть только на английском языке. И во триетих, после знака доллара не должно быть пробела. Придерживайтесь этих правил написания и у вас все получиться без ошибок. 1.3 Немного об типах данных Переменная может иметь разные типы данных. К примеру в нашей программе где мы создали первую переменную, наша переменная имела текстовый тип данных то есть обычный кусочек текста. Но кроме текстовых данных есть также другие типы данных, к примеру числа: $int = 456; ?> Вообще в PHP есть 9 типов данных, вы только что познакомились с числами и строками(текстовым типом данных). С числами можно делать арифметические операции. К примеру можно сделать сложение с помощью оператора +: $int1 = 5; $int2 = 34; echo $int1 + $int2; ?> PHP: Junior Kit 14 После того как вы сохраните файл с этим кодом и перейдете на вашу веб-страницу то вы должны увидеть число 39. В нашем коде мы объявили две переменные и дали им числовые данные после чего мы сложили их с помощью математического оператора +, и потом с помощью команды echo вывели результат на экран. Об математических операциях мы говорим немного позже а сейчас посмотрите на таблицу которая показана внизу, в ней приведены основные типы данных: Тип данных Значение Пример String Текстовые данные Hello world! Intenger Числовые данные 3848 Float Число с плавающей точкой 6.02 Boolean Логические данные true array Массив Mike, Alex, John - Табл. 1 - Основные типы данных в PHP С текстовым и числовым типом данных вы уже знакомы, но как на счёт других типов данных? Точка с плавающей точкой это почти то же самое что и простые числа, только число разделяет точки на десятые, тысячные и т.д. (просто вспомните немного математику). Об логических данных будет отдельный подраздел поскольку это очень интересная и немного сложная тема. Ну и об массивах мы поговорим также немного позже, а сейчас мы будем только говорить об строках. PHP: Junior Kit 15 1.4 Строкив PHP Вы уже познакомились со строками и знаете что их можно создавать с помощью двойных кавычек. Но строки можно также создавать и одинарными кавычками: ?> Довольно таки просто, следующая тема о которой надо поговорить это операторы для работы со строками. 1.4.1 Операторы для работы со строками Операторов для работы со строками в РНР есть только 2, поэтому этот подраздел будет очень и очень кратким как предыдущий. Первый оператор нужен для того чтобы объединить две строки: // Результат: Это супер строка ?> Этот оператор можно будет использовать если надо будет к примеру вывести какую-нибудь переменную: $login = “SuperMan”; echo “Логин: ” . $login; ?> Второй оператор используется для того чтобы присоединиться к верхнему аргументу и вывести все в одну строку: $top = “Hello ”; $down .= “world”; // Результат: Hello world PHP: Junior Kit 16 ?> 1.4.2 Управление Последовательностью Вы уже знаете что можно создавать строки с помощью одинарных и двойных кавычек. Но если мы к примеру попробуем отобразить одинарную кавычку внутри одинарных кавычек то получим ошибку. Или если к примеру попробуем отобразить двойную кавычку в двойных кавычках то также получим синтаксическую ошибку. В чем же проблема? Проблема в том что РНР когда видит открывающуюся двойную кавычку думает что это начало строки и потом видит вторую двойную кавычку то есть ту кавычку которую мы и хотим отобразить в двойных кавычках, интерпретатор думает что эта кавычка закрывает строку и идет дальше но потом видит снова кавычку и думает что это начало строки. То есть выходит так что РНР как бы нам говорит что мы не закрыли строку. Чтобы решить такую проблему надо всего лишь поставить слэш около кавычки, которую мы хотим отобразить в кавычках такого же вида: // Результат: I’m superman! echo “Book was named \“Superhero\””; // Результат: Books was named “Superhero” ?> Это надо будет использовать если нам надо будет к примеру отобразить название нашей книги как показано в нашем примере. Хочу сказать очень важную вещь по поводу одинарных кавычек, есть очень большой минус. В одинарных кавычках не работают последовательности а также не отображаются переменные которые будут заключены внутри одинарных кавычек. Поэтому использовать одинарные кавычки надо только в тех случаях если мы хотим вывести только строку, но можно и отобразить переменную присоединив её к строке с помощью оператора “.”. Стоп, а PHP: Junior Kit 17 что же такое последовательности? Автор все время говорит о каких то последовательностях, но так и не сказал что это такое. Последовательности это как бы сказать маленькие команды со слэшем которые мы вставляем в строку, и с помощью таких последовательностей можно манипулировать строкой. То есть изменять что то в строке. Но вообще для манипулирования строки используются специальные функции о которых мы поговорим позже, а сейчас посмотрите на таблицу под номером 2 в которой показано какие именно есть последовательности в РНР. Последовательность Значение \n Новая строка \r Возвращение каретки \t Горизонтальная табуляция \v Вертикальная табуляция \e Escape знак \$ Знак доллара - Табл. 2 - Некоторые последовательности в РНР А теперь после того как мы выяснили что это такое можно поговорить о том как и где можно использовать эти команды. Но хочу добавить что я не добавил в таблицу все последовательности которые есть в этом языке программирования. По-настоящему их намного больше, но я показал самые востребованые. PHP: Junior Kit 18 Последовательность \n - Новая строка Как ясно из значения этой последовательности то она создает новую строку. Вместо того чтобы писать два разы echo можно просто воспользоваться данной последовательностью: // Результат: С этого получиться // две разные строки echo “С этого получиться”; echo “две разные строки”; // Результат: С этого получиться две разные строки ?> С использованием этой последовательности ваш код будет выглядеть намного красивее и ещё будет использована намного меньше памяти о которой мы поговорим намного позже. Последовательность \r - Возвращение каретки Как вы поняли эта последовательность называется возвращение каретки. Такое понятие как возвращение каретки существовал ещё до появления программирования, ещё в те времена когда появились первые печатные машинки с клавиатурой. Чтобы перейти в начало строки на такой машинке надо было возвратить каретку в начальное положение чтобы продолжить писать текст. Вот как это реализовано в PHP: // Результат: Hello // world! ?> PHP: Junior Kit 19 Последовательность \t - Горизонтальная табуляция Описать действие даной последовательности можно как выравниевание строк: // Результат: Hello world! ?> Аналогично работает также и вертикальная табуляция. Последовательность \e - Escape знак А эту табуляцию используют чтобы вывести этот знак ←, то есть escape знак: // Результат: Знак escape: ← ?> Заключение об использовании последовательностей В заключение можно сказать что последовательности можно использовать для того чтобы манипулировать строками но все таки лучше использовать специальные функции которые предназначены для работы со строками о которых мы поговорим немного позже. А сейчас же я рекомендую читателю попрактиковаться с данными последовательностями. Ну а теперь настало время поговорить об синтаксисе определения строк heredoc и nowdoc. PHP: Junior Kit 20 1.4.3 Синтаксис heredoc и nowdoc Ещё одним способом определения строки является синтаксис heredoc и nowdoc. Пример использования heredoc: $label = << |