Программирование на PHP
PHP — это язык программирования. Он является наиболее распространённым языком для создания сайтов. Больше половины сайтов в интернете работают на PHP. Он достаточно лёгкий для освоения, поэтому подойдёт для изучения людям, которые никогда не программировали.
Что нужно для работы с PHP?
Язык PHP отличается от HTML. Если HTML страницу можно сохранить в виде файла и открыть в браузере, то для PHP нужен компилятор, который исполнит PHP код. Этот компилятор устанавливается на сервер, где будет находиться сайт. И если утрировать, то можно сказать, что в результате выполнения PHP кода образуется HTML код, который пользователь видит в браузере.
Как программировать на PHP?
По способу программирования PHP ничем не отличается от HTML. То есть средой разработки может выступать обычный текстовый редактор. Если работаете на Windows, то это «Блокнот».
Для сохранения PHP файлов не требуется особых программ — достаточно сохранить текстовый файл с расширением «.php». Но в отличии от HTML, код php не исполнится, если открыть этот файл в браузере, а будет показан как простой текст. Поэтому для выполнения PHP кода нужен компилятор.
Где взять компилятор PHP?
Хостинговые компании — это компании, которые предоставляют услуги по аренде серверов, на которых установлено специальное программное обеспечение. В большинстве случаев на серверах присутствует компилятор PHP. Это программа умеет исполнять PHP файлы. И если открыть файл «.php» с такого сервера, то код исполнится, а не отобразится его содержание.
Закажите хостинг в MouseDC.ru! 🙂
Зачем вообще нужен PHP?
- Связь с базой данных
- Подготовка полученных из базы данных значений и обработка
- Вывод HTML кода
- Обработка данных форм при передаче данных на сайт
- Регистрация/авторизация пользователей
- Управление Cookies
Изучить программирование на PHP. Вводная
Основная задача программирования — заставить компьютер выполнять определенные и нужные программисту действия. Поэтому, наша первая программа будет выглядеть так:
$me = ‘Programmer’;
makeHappy($me);
Рассмотрим подробнее что же написано в этой программе. Опытные программисты советуют читать код подобно книге, пытаясь понять смысл написанного исходя из смысла попадающихся слов и символов. Ну и использовать логику, конечно.
Для тех кто и так знает, что делает этот код — в статье для вас есть блудницы и дух черно-белого верблюда.
Мы последуем этому совету и разберем код, пытаясь понять его смысл.
Поехали дальше.
Вторая строка:
$me = ‘Programmer’;
Первое слово, которое мы встречаем в этой строке — слово «me», на основании чего делаем вывод, что разговор тут идет о создателе данной программы. Доллар перед словом означает, что данная последовательность символов обретает свой смысл в виде переменной.
Что же такое переменная? Переменная — это место, где хранятся наши данные, а для удобства обращения, мы даем имя этой части памяти.
Если у нас есть выделенная память, то глупо ее оставлять пустой, верно? Поэтому следующим символом » +» — это не «плюс», а «оператор сложения», «-» — «оператор вычитания», «*» — «оператор умножения», а «\» — оператор деления. Конечно, этот список операторов далеко не полный, но смысл остается тот же — «оператор» — это что-то, что совершает определенные действия (у программистов называется «совершает операцию») над исходными данными, которые называются операндами.
Говоря языком программирования —
Означает оператор сложения, выполняющий операцию сложения над операндом-переменной $a и операндом-переменной $b. Ну или «а плюс б», если вы не на экзамене по программированию.
Если оператор работает не с двумя, а с одним операндом, он называется «унарным» от испанского слова «уно» — один. Старый знакомый из математики минус — пример такого оператора, совершающего операцию отрицания своего операнда. Если $a — положительное, то -$a — отрицательное, по модулю равное $a.
Подобно математическим уравнениям, мы можем комбинировать операторы вместе.
Например,
$a=1;
$b=2;
$c=-($a*2 + $b);
Чему в итоге равно $c?
Строчкой «$c=-(2*$a + $b)» мы говорим компьютеру присвоить переменной $c «отрицание суммы 2 умножить на $a и $b». Так как две строчки выше присваивают переменной $a значение 1, а переменной $b 2, то вычисление результата сводится к решению простого примера -(2*1+2), результатом которого является «-4»
Но в нашей программе переменной присваивается не число, а последовательность букв в кавычках. Это превращает переменную в «переменную строкового типа», или просто «строку». А последовательность букв в кавычках означает ровно то что вы видите — последовательность букв. Кавычки используются для обозначения границы этой последовательности. Иногда содержимое строки не носит абсолютно никакого смысла, но у хорошего программиста нет бессмысленных мест в программе, поэтому в строке
$me=’Programmer’, мы говорим о себе, присваивая себе строку «Programmer», и с данного момента считаем себя программистом (конкретно в этой программе).
Силой кода вы объявили себя программистом, и все что осталось — это закончить мысль. Для этого служит символ «;». Этот символ завершает оператор, сообщая, что больше действий в этом операторе производиться не будет.
Например, мы хорошо знаем что будет в переменной $c после выполнения кода
$a=1;
$b=2;
$c=-($a*2 + $b);
но что будет, если мы уберем скобки и поставим точку с запятой в другое место? Скажем, так:
$a=1;
$b=2;
$c=-$a*2; + $b;
Теперь оператор присваивания для $c заканчивается не после прибавления $b, а перед ним, и следовательно, суммирование с $b не происходит, т.к. оператор заканчивается на -$a*2. Теперь значение $c — это отрицание результата умножения $a на 2.
Закончив с присвоением себе титула программиста, мы переходим к следующей строке.
makeHappy($me);
Мы уже знаем про операторы, и их способность беспрекословно выполнять наши приказы. Но что делать, когда хочется совершить действие, выходящее за рамки возможностей оператора? Тут на помощь нам приходит функция. Если переменная дает название области памяти, то функция — это название для последовательности действий. Когда нам нужно совершить эти действия над данными, мы должны вызвать функцию.
Для вызова функции нужно, одевшись в черный плащ с капюшоном, в полнолуние читать вслух учебник по латыни, стоя лицом на запад внутри круга, нарисованного кровью старых блудниц.
Ну или просто написать имя функции, в скобках через запятую перечислив данные, с которыми эта функция будет работать.
И если эффективность первого метода сомнительна, второй способ работает всегда. И обратно — если мы видим имя, после которого в скобках идет перечисление переменных, других данных или просто ничего, то скорее всего перед нами — вызов функции.
Будучи переданными в функцию данные становятся «аргументами» функции. В качестве аргументов мы так же можем использовать операторы.
Например, func($a) вызывает функцию для аргумента-переменной $a, в то время как func($a+$b) вызывает функцию, получая в качестве аргумента результат сложения $a и $b.
Как догадаться что делает функция? Нужно взглянуть на ее имя. Хорошие программисты всегда используют в именах функции глаголы, означающие действия, совершаемые над аргументами. Стоящие рядом существительные говорят о том, что выбрано для воздействия, а прилагательные — раскрывают дополнительные особенности существительных.
Сложновато, правда? Поэтому просто читайте что написано. Если написано » printReport «, то скорее всего функция печатает отчет, а если написано » eatCat «, то функция отправит вашего кота есть. Или съест вашего кота.
Возвращаясь к нашему коду —
makeHappy($me)
Судя по названию, делает счастливым, а судя по списку операндов, делает счастливым программиста, создавшего ее. Данная программа является универсальным личным генератором счастья. На этом я заканчиваю рассказ о программировании — ведь теперь у вас есть универсальный способ доставить счастье кому угодно. Заказчику, начальнику и самому себе конечно. Все. Занавес, выключаем рубильник и расходимся.
Что, что простите? Функция не определена. Ой, извините, забыл маленькую деталь.
Прежде чем компьютер принесет вам счастье, вы должны научить его это делать. Как? С помощью магии, конечно! Магии программирования — так что одеваем черные плащи, берем в руки клавиатуру, учебник латыни и вперед — к созданию личных генераторов счастья. И хватит уже на сегодня — полнолуние, и у меня запланирован интересный вечер в компании старых блудниц.
С чего начать учить PHP: особенности, синтаксис и идеи для первых проектов

В этой статье разберемся в перспективах и популярности PHP в 2022 году, рассмотрим плюсы и минусы языка, поговорим про платформы для тренировки навыков на практике и источниках идей для первых проектов.
- Введение
- Преимущества и особенности PHP
- Сообщество
- Низкий порог входа
- Обратная совместимость
- Комментарии
- Переменные
- Другие элементы
Введение
PHP — самый популярный язык для веб-разработки. Почти 80% всех сайтов в интернете написаны на этом языке.
Поскольку язык очень широко распространен, работу на нем можно найти практически в любой сфере. Особенно он актуален в компаниях на этапе создания mvp (минимально жизнеспособного продукта) или среди разработчиков CRM-систем.
Код на PHP выглядит, например, так:
function isCorrectPassword($password) $length = strlen($password); return $length > 8 && $length 20; > isCorrectPassword('qwerty'); // false isCorrectPassword('qwerty1234'); // true isCorrectPassword('zxcvbnmasdfghjkqwertyui'); // falseПреимущества и особенности PHP
Сообщество
Сообщество помогает с проблемами, которые не получается решить чтением документации и гуглом. У PHP оно большое и дружелюбное к новичкам — причем как в англоязычном мире, так и в России.
Крупнейший глобальный форум по языку программирования — PHP Community , в России — PHP Club . Существует несколько десятков крупных телеграм-чатов для разработчиков разного уровня (самые популярные: раз , два , три ), а также отдельные чаты для джунов , где можно задавать любые вопросы и не бояться осуждения.
Низкий порог входа
Это и плюс, и минус языка. С одной стороны, начать программировать на PHP относительно просто, с другой — некоторые разработчики не выходят за рамки с CMS, работают на уровне конструкторов и редко касаются кода. От этого страдает сообщество, а поиск PHP-разработчика, который понимает теорию и умеет кодить, превращается в действительно сложную задачу.
Составьте свое первое резюме: Вы можете бесплатно опубликовать свое резюме в нашем сервисе «Хекслет-CV» и получить советы по его улучшению от разработчиков и HR-менеджеров
Обратная совместимость
Обратная совместимость — термин, которым обозначают легкость обновления кода под новую версию. Разработчики PHP стараются поддерживать ее на высоком уровне: к моменту выхода восьмой версии обратная совместимость у языка почти полная (за исключением некоторых моментов).
Это и преимущество, и недостаток языка программирования: с одной стороны, разработчики могут не бояться переезда и всегда использовать новую версию. С другой — в PHP до сих пор остались некоторые функции стандартных библиотек, которые работают странно и несогласованно. Яркий пример — функции array map и array reduce, у которых положение входного массива и функции отличаются. Это не очевидно и к этому надо привыкать.
Синтаксис PHP
Начнем с азов: строку Hello, world! можно вывести на экран двумя способами.
- С помощью специальной команды echo
echo 'Hello, World!'; // => Hello, World!- С помощью функции print_r().
print_r('Hello, World!'); // => Hello, World!Любой код на PHP должен быть обёрнут в конструкцию , где — закрывающий. Это особенность языка программирования.
Комментарии
Комментарии в коде бывают двух видов: однострочные (//) и многострочные (/* */).
/* * The night is dark and * full of terrors. */ print_r('I am the King');Переменные
Перед объявлением переменной не нужно указывать ее тип — достаточно поставить значок $. Кроме того, одно значение можно присвоить нескольким переменным.
Другие элементы
Фреймворки для PHP
У PHP множество фреймворков, но в этой статье кратко рассмотрим три самых популярных: Laravel, Yii и Symfony.
- Laravel — фреймворк с самым низким порогом входа, с него можно начинать знакомство с возможностями языка. Если возникнут трудности, по фреймворку есть несколько чатов: для базовых вопросов и для кейсов посложнее .
- Yii — еще один фреймворк с низким порогом входа: для начала работы с ним достаточно знать PHP на уровне новичка. Русскоязычные чаты разбиты по версиям: первая , вторая и третья .
- Symfony — самая масштабная библиотека-фреймворк на PHP. Возможностей больше, но и порог входа выше.
Что учить вместе с PHP
PHP — язык для веб-разработки, поэтому знать HTML и CSS хотя бы на базовом уровне нужно обязательно. То же касается протокола HTTP на уровне понимания процесса работы запросов клиент-сервер.
Остальные технологии можно разделить на две категории:
- Полезно знать. Git (нужен всем программистам, которые собираются заниматься коммерческой разработкой), SQL (подавляющее число веб-приложений имеют базу данных), Nginx и Apache (для настройки окружения);
- Дополнительные навыки. Linux/Unix, JavaScript, Docker.
Как выбрать редактор кода или среду для разработки на PHP
На первом этапе сложная среда разработки вроде PHPStorm не нужна — новичку IDE покажется монстром с множеством функций, который к тому же медленно открывается.
Sublime и VSCode, напротив, быстро открываются, настраиваются и позволяют относительно просто подключать дополнительные фичи. Например, инструменты для взаимодействия с базой данных или с кэшем.
Когда понадобятся инструменты для работы с Git, шаблонизаторами, окружением, тестами и другими технологиями, можно переходить на IDE — например, на PHPStorm, Netbeans и Aptana Studio.
Какие книги и сайты использовать для изучения PHP
Выше уже говорилось, что при изучении PHP важно уделять много внимания теории, а не только учиться писать код. Этот язык программирования дает очень размытое представление о том, как его компоненты работают на базовом уровне. Понимание теории поможет освоить и PHP, и любой другой язык программирования.
На русском языке есть несколько подходящих книг:
- «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих», Адитья Бхаргава;
- «Код: тайный язык информатики», Чарльз Петцольд;
- «Чистый код», «Идеальный программист», «Чистая архитектура», Роберт Мартин.
Важно уточнить, что читать эти книги лучше через полгода после начала обучения. С одной стороны, за это время появится представление о PHP, с другой — желание применить новые знания и переписать весь проект возникнет не сразу.
Если говорить о сайтах, то на PHP: The Right Way собрана обширная база материалов для разработчиков разных уровней, а CodeBasics подходит для изучения синтаксиса.
Где тренироваться
Соревнования помогают развивать навыки кодирования и учат видеть неочевидные пути решения задач. Вот три самых популярных платформы:
- Codewars . Платформа с соревнованиями для разработчиков разных уровней подготовки. Все решения участников публикуются в открытом доступе после завершения раунда. Это важный элемент обучения: можно решать задачу несколько дней в 100 строк кода, а можно сделать то же самое за несколько часов и пять строк. Например, с помощью готовых функций.
- Hackerrank . Кроме соревнований на платформе есть раздел подготовки к интервью с самыми популярными и актуальными вопросами. Например, есть блоки по массивам, объектам и другим сущностям — с объяснением, как это работает, и с задачами на закрепление знаний.
- Leetcode . Раздел Learn с теорией и практикой для ее закрепления помогает понять логику программистских задач и научиться решать их практически с нуля.
Вместо заключения
Главный итог обучения — смена профессии. Вот несколько советов, с чего начать переход от задач и тренировки к реальным проектам в портфолио.
Лучшее, с чего можно начать — найти в своей жизни момент, который можно автоматизировать. Например, если вы хотите выработать привычку читать каждый день по 10 страниц. Можно сделать приложение для учета количества страниц книги, прочитанной в определенный день. Утилитарность приложения почти гарантирует, что проект будет доведен до конца.
- Задачи, которые встречаются в реальных проектах
Можно попробовать реализовать функции, которые встречаются в реальных проектах — например, форму для сайта. В ней можно сделать HTML и CSS, добавить JS и прописать логику. Например, реализовать сохранение в базу данных или отправлять сообщение на почту. На таком проекте можно учиться разделять логику. Например, сделать так, чтобы один отвечал за отображение, другой — за саму форму, третий — за сохранение данных в базе.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях
Изучи PHP онлайн за 25 часов
Изучение программирования — непростой и длительный процесс. Изучение синтаксиса языка — самая простая и короткая часть в пути, но без неё невозможно начать. Этот курс посвящен азам написания программ на PHP. Он готовит плацдарм для написания осмысленных программ
25 часов 27958 студентов 75 уроков с практикой в браузере
Основы PHP
- 1. Привет, Мир!
- 2. Теги
- 3. Комментарии
- 4. Инструкции (Statements)
- 5. Как мы проверяем ваши решения
- 6. Синтаксические ошибки
PHP – один из самых популярных языков программирования в мире. На этом языке написано более 80% сайтов в интернете. Изучать PHP мы будем с нуля, с самых азов. Первый модуль – плацдарм для написания осмысленных программ. В нем мы разберем, как написать свой первый код на PHP. Расскажем, что такое комментарии и зачем они нужны. На примере проверки ваших решений рассмотрим, что такое тестирование и как читать вывод тестов.
Арифметика
- 7. Арифметические операции
- 8. Операторы
- 9. Коммутативная операция
- 10. Композиция операций
- 11. Приоритет операций
- 12. Линтер
Современные программы создаются для обслуживания бизнесов, помощи в ежедневной жизни и развлечений. Но в основе их работы по-прежнему лежат вычисления. Наиболее простая и базовая тема в программировании — арифметика. В этом модуле мы переведем арифметические действия на язык программирования, поговорим о приоритете операций. Расскажем, что такое линтер и почему он может «ругаться».
Строки
- 13. Кавычки
- 14. Экранирующие последовательности
- 15. Конкатенация
- 16. Кодировка
Текст в программировании называется «строками», и эта тема не так проста, как может показаться. Как вывести фразу, в которой есть и одинарные, и двойные кавычки? Как вообще быть с текстом, ведь компьютер не знает ничего о буквах! Модуль посвящен разным аспектам написания текста – от кавычек и экранирования до кодировки.
Типы данных PHP
- 17. Типы данных
- 18. Слабая типизация
- 19. Явное преобразование типов
PHP — язык со слабой типизацией и неизменяемыми примитивными типами данных. Что произойдет, если мы попробуем умножить число на строку? Каким образом PHP понимает, что за тип данных перед ним? И что делает PHP, когда видит несоответствие типов? Ответы на эти вопросы вы найдете в текущем модуле.
Переменные в языке PHP
- 20. Что такое переменная
- 21. Изменение переменной
- 22. Выбор имени переменной
- 23. Ошибки при работе с переменными
- 24. Выражения в определениях
- 25. Переменные и конкатенация
- 26. Именование переменных
- 27. Магические числа
- 28. Константы
- 29. Магические константы
- 30. Интерполяция
- 31. Извлечение символов из строки
- 32. Heredoc
Информацию можно помещать в специальные «хранилища» — переменные. Это позволяет переиспользовать уже существующие данные и не дублировать их в разных частях кода. В этом модуле мы разберем как изменять переменные и именовать их, чтобы чтение вашего кода было понятным для любого разработчика. Вы поймете, что придумать название переменной не так-то просто! А еще расскажем, как использовать переменные для упрощения сложных вычислений.
Вызов функций
- 33. Функции и их вызов
- 34. Сигнатура функции
- 35. Аргументы по умолчанию
- 36. Вызов функции — выражение
- 37. Функции с переменным числом параметров
- 38. Детерминированность
- 39. Стандартная библиотека
Для выражения любой произвольной операции в программировании существует понятие «функция». Функции — кирпичики, из которых программисты строят системы. В этом модуле мы научимся пользоваться уже созданными функциями. Посмотрим на сигнатуру функции в документации и разберемся, как её использовать. Познакомимся со стандартными библиотеками, которые хранят тысячи функций. Все функции невозможно выучить, но каждый программист должен знать, где искать документацию по ним.
Начните прямо сейчас
Определение функций
- 40. Создание (определение) функций
- 41. Возврат значений
- 42. Параметры функций
- 43. Необязательные параметры функций
- 44. Чтение документации
Определение собственных функций значительно упрощает написание и поддержку программ. Например, умение определять функции позволяет объединять сложные (составные) операции в одну – вся сложность может быть скрыта за одной простой функцией. Научившись писать функции, вы сделаете первый шаг на пути к построению по-настоящему полезных программ. И мы вам в этом поможем. В этом модуле вы создадите свою первую функцию и научитесь давать ей (а заодно переменным и константам) понятные названия.
Логика
- 45. Логический тип
- 46. Предикаты
- 47. Комбинирование операций и функций
- 48. Логические операторы
- 49. Отрицание
- 50. Логические операторы 2
- 51. Слабая типизация — 2
Логические выражения позволяют отвечать на вопросы, которые возникают во время работы программы. Пользователь аутентифицирован? Подписка оплачена? Год високосный? В этом модуле изучаем функции-предикаты – те, которые задают вопрос и отвечают на него – правда это или ложь. Попрактикуемся в написании таких функций и перейдем к более сложным логическим выражениям.
Условные конструкции
- 52. Условная конструкция (if)
- 53. else
- 54. Конструкция else if
- 55. Тернарный оператор
- 56. Конструкция Switch
- 57. Оператор Элвис
Задача функции-предиката — получить ответ на вопрос, но обычно этого недостаточно и нужно выполнить определенное действие в зависимости от ответа. If и Switch – конструкции PHP, с помощью которых программист может выбирать необходимое поведение программы в зависимости от разных условий: пропускать одни инструкции и выполнять другие. Их и разберем на практике в этом модуле.
Циклы
- 58. Цикл While
- 59. Агрегация данных (Числа)
- 60. Агрегация данных (Строки)
- 61. Обход строк
- 62. Условия внутри тела цикла
- 63. Формирование строк в циклах
- 64. Пограничные случаи
- 65. Синтаксический сахар
- 66. Инкремент и декремент
- 67. Возврат из циклов
- 68. Цикл For
Любой код может повторяться десятки, тысячи, миллионы раз. В комбинации с другими известными нам инструментами — переменными и условиями — это открывает множество возможностей по построению программ и сложных систем. Приведем простой пример. Вам нужно найти конкретную фразу в учебнике из 500 страниц. Фразу вы помните, а вот номер страницы нет. Самый простой (и долгий) способ — последовательно просматривать страницы до тех пор, пока не найдете нужную. Для выполнения таких повторяющихся действий и нужны циклы.
Погружаясь в строки
- 69. Юникод
- 70. Локализация
- 71. Поиск стартовой позиции
Современное кодирование строк и работа с ними в PHP, используя функции для многобайтовых кодировок. Локализация.
Дата и Время
- 72. Время
- 73. Date
- 74. mktime()
- 75. Часовые пояса (тайм зоны)
Понятие времени в компьютерах. Аппаратный и Системный таймеры. Функции для работы с датой и временем в PHP. Таймзоны
