# Введение

PHP (Personal Home Page) - язык программирования, разработан специально для веб-приложений, проще говоря, для создания сайтов.
Привет, будущий разработчик! Это вступительный урок и вход в увлекательный мир программирования.
PHP разработчик является backend-разработчиком, а это значит что в его инструментах в первую очередь есть программы для отправки запросов без браузера (Postman, Insomnia) и обычная консоль Для начала разберемся со вторым инструментом.

# Шпаргалки

PHP (Personal Home Page) - интерпретируемый язык программирования, создан специально для разработки web приложений (сайтов, API, сервисов)
Попытка использовать несуществующую переменную

# Синтаксис

Переменные — это такие специальные штуки для хранения данных. Любых данных. Все данные в PHP, как и в других языках программирования хранятся с помощью переменных. Больше всего переменная по смыслу напоминает коробку: самую обычную коробку.
Boolean - тип данных, который имеет два значения: true и false. Он выражает истинность значения.
Код делится на две части: То что читает машина, и то что игнорирует, оставляя это только кожаному
int - сокращенно от Integer (В переводе с английского "целый") - целые числа
В PHP мы можем использовать различные операторы: арифметические, логические и т.д. в данном уроке мы рассмотрим арифметические
Для комфортной работы с логическими выражениями, которые могут быть истинными или ложными, в PHP создали специальный тип, с ними мы уже знакомились в предыдущем уроке - boolean.
Если бы у программы был один путь, независимо от того, как меняются внешние факторы, от них было бы мало толку. Любой программе необходимо подстраиваться под разные ситуации и совершать действия в зависимости от условий
В программировании нам может понадобиться сложное условие, состоящее из нескольких частей.
Иногда одного условия недостаточно для того, что бы создать сложную логику приложения. Тогда может возникнуть проблема вложенности условий, что приведет к нечитабельности кода.
“Тернарный” в переводе означает “тройной”. Это альтернатива условному оператору if-else, который тебе уже знаком.
Для выражения любой произвольной операции в программировании существует понятие функция.
Мы познакомились со встроенными функциями PHP. Теперь пора научиться создавать свои. Представьте себе, вам нужно выводить название компании в нескольких местах своего сайта. Вы планомерно добавляли строкой название компании и ни о чем не задумывались. Проходит время, компания сменила название, и у вас появилась одна, очень большая задача по изменению названия в каждом месте, где было указано старое. Это вам не грозит, если вы умеете писать функции.
Продолжаем разговаривать о функциях, и сейчас, мы поговорим о важном операторе return.
В этом уроке мы научимся работать со строками в PHP. Строки, которые так широко используются в программировании представляют из себя последовательность символов. Строка - это последовательность символов, заключенная в одинарные или двойные кавычки.
Есть очень полезная вещь, которую можно делать со строками в PHP — их можно склеивать между собой. Такая операция называется конкатенация. Ну или чтобы легче запомнилось — Кон-Котэ-Нация. Хотя часто ее называют «склеивание строк». Она нужна, для формирования динамических строк. Именно благодаря такой возможности, ваш любимый сайт приветствует вас по вашему имени в уважительной форме типа "Здравствуйте, мой повелитель $name"
Строки играют большую роль, задачи на парсинг строк довольно часто встречаются в PHP, поэтому рассмотрим некоторые базовые функции работы со строками.
Мы знаем о том, что существуют такие вещи как переменные. Если представить сравнение с реальной жизнью - это коробки с содержимым: коробка - название переменной, содержимое - ее значение.
После того, как вы освоите основы работы с массивами, вы можете перейти к более сложным приемам работы с массивами.
Представьте себе, что вам необходимо повторить одно действие много раз Например вывести сообщение, о том, что вы молодец
О самом цикле мы поговорили, но не всегда обязательно проходить весь цикл целиком.
Цикл while это конечно хорошо, мощный, лаконичный, но не очень безопасный - очень легко сделать бесконечную рекурсию.
Цикл foreach в PHP является одним из самых мощных и удобных инструментов для прохождения по массивам и коллекциям. Этот цикл позволяет проходить по элементам как массивов, так и объектов, и дает вам возможность легко и быстро выполнять действия для каждого элемента.

# Объектно-Ориентированное программирование

PHP может использоваться как функциональный и объектно-ориентированный язык программирования. Но в большинстве случаев, и на большинстве проектов используется именно ООП. Это означает, что писать приложения на PHP нужно с применением объектно-ориентированного стиля. И стиль этот основан на использовании в программе объектов и классов.
Классы — это, можно сказать, основа основ программирования ООП. Когда ты станешь программистом, твоей основной задачей будет написание собственных классов с разным функционалом.
Переменные, которые являются членами класса, называются "свойства". Также их называют, используя другие термины, такие как "атрибуты" или "поля", но в рамках этой статьи, мы будем называть их свойствами.
Тебе подробно рассказали про свойства класса, напомню тебе, что это характеристики объекта класса. Это замечательно, но только действия отличают хорошего война от плохого. 
Мы уже знаем что такое методы класса
На Jefero Guru студентов знакомят с ключевым словом this. И со временем становится понятно, что все же оно означает. Но многие, обернувшись назад, наверное, честно себе скажут, что долго не могли осознать дзен этого ключевого слова. В уроке приоткрываем завесу тайн применения ключевика this для тех, кто до сих пор в него не может… Welcome!
В прошлом уроке мы узнали, как управлять объектом внутри класса с помощью $this - нам это пригодиться в этой теме.
Без лишних слов, сразу перейдем к коду. Создаем класс Cat, поля $name, $age, $breed, все серьезно.
Привет! В сегодняшней лекции мы познакомимся с понятием «модификаторы доступа» и рассмотрим примеры работы с ними.
Продолжаем тему модификаторов доступа, только теперь поговорим о методах.
Каждый урок связан с последующим, без прошлых уроков сложно понять текущую тему, не прибегая к дополнительной литературе. Мы уже говорили об инициализации объекта, и затронули тему конструкторов. Сегодня мы поговорим о них немного подробнее.
Иногда вам будет необходимо проверять два объекта на равенство. Часто, эту тему опускают, так как применяется данная операция редко, но мы должны о ней узнать для общего развития
Когда мы описываем переменные в классе, мы указываем, будут ли эти переменные созданы всего один раз или же нужно создавать их копии для каждого объекта. По умолчанию создается новая копия переменной для каждого объекта. Вот как это выглядит:
Если есть статичные свойства, значит есть и статичные методы - куда же без них?
Поговорим о магии. В PHP ее много, и если в меру, она полезна, однако не стоит ей пренебрегать.
Хочу рассказать тебе об еще одном очень мощном инструменте ООП – это полиморфизм. У него есть особенности.
Сегодня мы подробно рассмотрим еще один принцип объектно-ориентированного программирования (ООП) — наследование.
Очень часто вам нужно описать в программе что-то неконкретное, базовое. Для такой задачи существует Абстракция
Интерфейс – это дитя Абстракции и Полиморфизма. Интерфейс очень напоминает абстрактный класс, у которого все методы абстрактные. Он объявляется так же, как и класс, только используется ключевое слово interface.
Все мы уже знаем, что в PHP запрещено множественное наследование.
В далекие-далекие времена, PHP был только нестрого-типизированным языком. Ты мог только попросить разработчика передавать в метод строку, но запретить ты ему не мог. Из-за этого появлялось много разных проблем с конвертацией одного типа в другой. Расмус Лердорф услышал боль и слезы разработчиков, а после решил их проблему возможностью использовать строгую типизацию
В моменте, когда проект начинает перерастать из простого калькулятора в нечто большее, необходимо позаботиться об архитектуре проекта.
С каждым днем PHP становится все более крутым языком. В версии 8.1 добавили enum. Давайте разбираться что это такое
Потратив какое-то время на написание кода, вы знаете, что отладка является жизненно важной частью процесса. Иногда может быть сложно понять, почему ваша программа дала сбой или перестала работать. Может быть неприятно столкнуться с ошибкой, которая кажется бессмысленной.

# Полезные статьи

Вы не представляете сколько раз я слышал данный тезис. Даже когда я только начинал учить этот язык, из каждого утюга доносилось, что PHP умирает. Но все не так просто.
Технологии повсюду. Теперь даже чайник можно включить с помощью своего смартфона не вставая с кровати. А чем больше развивается индустрия, тем больше необходимо людей. Из каждого утюга пестрят рекламные слоганы: “Научим вас программировать”, “Курсы программирования”, “Как выучить язык за три дня” или мое любимое - “Погрузись в профессию IT, это модно”
PHP — отличный язык для начала, когда вы учитесь программировать. У него простой синтаксис, его легко освоить, и с его помощью вы можете создавать динамические веб-сайты. Но хотя написать PHP-код легко, его не всегда легко отлаживать. Существует множество инструментов, которые могут вам помочь. Поскольку PHP является интерпретируемым языком, вы также можете использовать несколько методов отладки, которые помогут вам найти ошибки в вашем коде.
В мире нулей и единиц, стало места для одних лишь чисел, а пароли должны стать более защищенными (Для вашей безопасности и безопасности ваших пользователей)
Для прохождения обучения в PhpStorm вам необходимо установить плагин 
Когда-то, на PHP писали только в процедурном стиле. Хотя сам язык появился чуть позже чем Java, у которой вся архитектура построена на ООП, в PHP это было избыточно. На то время браузеры не могли похвастаться большой функциональностью, а значит и писать сложные сайты, тем более web приложения никто даже не думал. Шли годы, производительность компьютеров росла, появлялась потребность в более прогрессивных сайтах. И как язык, который создан исключительно для сайтов, PHP приходилось развиваться и стараться идти в ногу со временем.