Основы программирования на PHP

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

1. Введение в PHP: настройка окружения, синтаксис и переменные

Введение в PHP: настройка окружения, синтаксис и переменные

Добро пожаловать на курс «Основы программирования на PHP». Мы начинаем увлекательное путешествие в мир веб-разработки. PHP (Hypertext Preprocessor) — это один из самых популярных языков программирования, который используется для создания динамических веб-сайтов. На нем работают такие гиганты, как WordPress, Wikipedia и, в значительной степени, Facebook.

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

Что такое PHP и как он работает?

Прежде чем писать код, важно понять место PHP в экосистеме веба. PHP — это серверный язык сценариев. Это означает, что код выполняется не в браузере пользователя (как JavaScript), а на удаленном компьютере — сервере.

Когда вы заходите на сайт:

  • Ваш браузер отправляет запрос на сервер.
  • Сервер находит нужный PHP-файл.
  • Интерпретатор PHP выполняет инструкции в файле (обращается к базе данных, проводит вычисления).
  • Результат работы (обычно это чистый HTML) отправляется обратно в ваш браузер.
  • !Схема цикла запрос-ответ при использовании PHP

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

    Настройка локального окружения

    Чтобы ваш компьютер «понимал» PHP, на нем должен быть установлен интерпретатор PHP и веб-сервер (обычно Apache или Nginx). Для новичков самый простой способ — установить готовый пакет «все в одном».

    Популярные решения для локальной разработки:

    * XAMPP (Windows, Linux, macOS) — одно из самых старых и надежных решений. * OpenServer (Windows) — очень популярен в русскоязычном сегменте благодаря удобному интерфейсу. * MAMP (macOS, Windows) — отличный выбор для пользователей Mac.

    Мы не будем углубляться в процесс установки конкретной программы, так как он сводится к принципу «Далее — Далее — Готово». Главное — после установки запустить модуль Apache (веб-сервер) и убедиться, что индикатор загорелся зеленым цветом.

    Все ваши файлы с кодом должны лежать в специальной папке сервера (обычно она называется htdocs в XAMPP или domains в OpenServer). Если вы положите файл в другое место, сервер его не увидит.

    Ваш первый скрипт: Hello, World!

    Создайте в папке сервера файл с именем index.php. Откройте его в любом редакторе кода. Я рекомендую использовать VS Code или PhpStorm, так как они подсвечивают синтаксис и помогают находить ошибки.

    Напишем классический пример:

    Давайте разберем этот код по косточкам:

  • <?php — открывающий тег. Он сообщает серверу: «Здесь начинается код PHP, выполняй его».
  • echo — это языковая конструкция, которая выводит текст на экран. Это ваш главный инструмент для общения с пользователем.
  • "Привет, мир!" — это строка текста. Строки всегда должны быть обернуты в кавычки (одинарные или двойные).
  • ; (точка с запятой) — обязательный символ в конце каждой команды. Если вы забудете поставить точку с запятой, программа выдаст ошибку и не запустится.
  • ?> — закрывающий тег. Он говорит серверу, что PHP-код закончился.
  • > Если файл содержит только PHP-код, закрывающий тег ?> ставить не рекомендуется. Это помогает избежать случайного вывода лишних пробелов или переносов строк после кода, что может вызвать ошибки при отправке заголовков.

    Синтаксис: правила игры

    У PHP, как и у любого языка (будь то русский или английский), есть грамматика. Нарушение правил приводит к тому, что вас не поймут.

    Чувствительность к регистру

    В PHP функции и ключевые слова (например, echo, if, while) нечувствительны к регистру. Это значит, что ECHO, echo и EcHo сработают одинаково. Однако, имена переменных чувствительны к регистру. Name — это две разные ячейки памяти.

    Комментарии

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

    Переменные: контейнеры для данных

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

    Правила создания переменных

  • Все переменные в PHP начинаются со знака доллара user_name = "Alex"; // Правильно
  • User1 = "Admin"; // Правильно

    // user-name = "A"; // ОШИБКА: дефис запрещен php score = 20; // Теперь в переменной TotalPTprice = 1000; // Цена товара total = tax_rate / 100);

    echo name = "Мария";

    echo 'Привет, name! echo "Привет, greeting = "Привет"; message = name . "!"; echo myVar и $myvar — это разные переменные. Если вы попытаетесь вывести несуществующую переменную, PHP выдаст предупреждение Undefined variable.

    Заключение

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

    В следующей статье мы поговорим об управляющих конструкциях: как научить программу принимать решения с помощью if/else и выполнять повторяющиеся действия в циклах.

    2. Управляющие конструкции, циклы и работа с функциями

    Управляющие конструкции, циклы и работа с функциями

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

    Мы разберем три кита, на которых держится логика любого приложения:

  • Условные конструкции (как научить программу говорить «Нет»).
  • Циклы (как заставить компьютер делать скучную работу).
  • Функции (как не писать один и тот же код дважды).
  • Условные конструкции: принятие решений

    В реальной жизни мы постоянно принимаем решения: «Если на улице дождь, я возьму зонт, иначе я пойду в футболке». В программировании за это отвечает конструкция if-else.

    !Схема работы условной конструкции if-else

    Конструкция if-else

    Самый простой пример — проверка возраста пользователя:

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

  • Ключевое слово if (если) принимает условие в круглых скобках.
  • Если условие истинно (true), выполняется код в первых фигурных скобках {}.
  • Если условие ложно (false), выполняется код после else (иначе).
  • Операторы сравнения

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

    | Оператор | Описание | Пример | | :--- | :--- | :--- | | == | Равно (по значению) | 5 == "5" (true) | | === | Тождественно равно (по значению и типу) | 5 === "5" (false) | | != | Не равно | 5 != 10 (true) | | > | Больше | 10 > 5 (true) | | < | Меньше | 5 < 10 (true) | | >= | Больше или равно | 5 >= 5 (true) |

    > Важно: Новички часто путают оператор присваивания = и оператор сравнения ==. Помните: один знак равенства задает значение, два знака — сравнивают его.

    Логические операторы

    Иногда нужно проверить несколько условий одновременно. Например, мы пускаем на сайт только тех, кто старше 18 И имеет приглашение.

    * && (И) — истина, только если оба условия верны. * || (ИЛИ) — истина, если хотя бы одно условие верно. * ! (НЕ) — инвертирует значение (превращает ложь в истину и наоборот).

    Конструкция elseif

    Если вариантов развития событий больше двух, используется elseif.

    php for (i <= 5; i <br>"; } php sum = 0;

    for (i <= i++) { sum + nsum"; // Выведет 55 php for (i <= 10; i == 5) { continue; // Пропустим число 5 } if (i . " "; } // Результат: 1 2 3 4 6 7 php function sayHello(name!<br>"; }

    sayHello("Анна"); sayHello("Дмитрий"); php function add(b) { a + result; }

    sum; // Выведет: Сумма: 15 php localVar = "Я внутри"; // echo localVar; // ОШИБКА: мы не видим переменную из функции ``

    Переменные внутри функции называются локальными. Они существуют только в момент выполнения функции и уничтожаются после её завершения. Это сделано для безопасности и экономии памяти, чтобы разные части программы не мешали друг другу.

    Заключение

    Сегодня мы сделали огромный шаг вперед. Мы научились:

  • Управлять ходом программы с помощью if и else.
  • Сравнивать значения, различая мягкое == и жесткое === равенство.
  • Использовать циклы for и while для повторяющихся задач.
  • Упаковывать код в функции для повторного использования.
  • Эти инструменты — база для написания любых алгоритмов. В следующей статье мы разберем Массивы — структуры данных, позволяющие хранить списки информации, и научимся обрабатывать их с помощью специального цикла foreach`.

    3. Массивы и строки: встроенные методы обработки данных

    Массивы и строки: встроенные методы обработки данных

    В предыдущих статьях мы научились создавать переменные для хранения одиночных значений (чисел или строк) и управлять потоком выполнения программы с помощью циклов и условий. Однако в реальной разработке мы редко работаем с одиночными данными. Представьте интернет-магазин: вам нужно хранить не одно название товара, а тысячи. Или список пользователей, где у каждого есть имя, email и пароль.

    Создавать для каждого товара переменную product2, fruits = array("Яблоко", "Банан", "Апельсин");

    // Современный короткий синтаксис (рекомендуется) fruits[0]; // Выведет: Яблоко echo user = [ "name" => "Дмитрий", "age" => 30, "city" => "Москва" ];

    echo i.

    Простой перебор значений

    Как это работает: на каждой итерации цикла текущее значение из массива color.

    Перебор ключей и значений

    Для ассоциативных массивов часто нужно знать не только значение, но и ключ.

    Встроенные функции для работы с массивами

    PHP славится своей огромной стандартной библиотекой. Вам не нужно писать алгоритмы сортировки или поиска вручную — все уже написано за вас.

    1. Подсчет элементов: count()

    Самая часто используемая функция. Позволяет узнать размер массива.

    2. Поиск в массиве: in_array()

    Проверяет, существует ли значение в массиве. Возвращает true или false.

    3. Добавление элементов: array_push()

    Добавляет один или несколько элементов в конец массива.

    Математика в массивах

    Представьте, что у нас есть массив оценок студента, и нам нужно вычислить средний балл. Для этого нам понадобятся функции array_sum() (сумма всех значений) и count().

    Формула среднего арифметического:

    Где: * — среднее значение (результат). * — сумма всех элементов массива (реализуется функцией array_sum). * — количество элементов (реализуется функцией count).

    Реализация на PHP:

    Работа со строками

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

    > Важное замечание про кодировки: PHP изначально создавался давно, и его базовые функции для строк (например, strlen) плохо работают с кириллицей (русским языком), так как русские буквы в кодировке UTF-8 занимают 2 байта, а не 1. Поэтому для работы с русским текстом всегда используйте функции с префиксом mb_ (MultiByte).

    1. Длина строки: mb_strlen()

    !Визуализация разбиения строки на массив и склеивания массива обратно в строку

    Многомерные массивы

    Массивы могут хранить внутри себя другие массивы. Это называется многомерными массивами. Они похожи на таблицу в Excel или матрицу.

    ``php products[0][0]; // Apple echo A_{ij}A_GET и $_POST.

    4. Основы объектно-ориентированного программирования (ООП) в PHP

    Основы объектно-ориентированного программирования (ООП) в PHP

    Добро пожаловать на четвертый модуль нашего курса «Основы программирования на PHP». В прошлых статьях мы писали код в процедурном стиле: создавали переменные и функции, которые лежали отдельно друг от друга. Это отлично работает для небольших скриптов, но когда проект разрастается, такой код превращается в «спагетти» — запутанный клубок, в котором сложно разобраться.

    Сегодня мы переходим на новый уровень. Мы изучим Объектно-Ориентированное Программирование (ООП). Это подход, который позволяет моделировать реальные объекты и процессы в коде, делая его структурированным, понятным и удобным для расширения.

    Что такое ООП? Классы и Объекты

    В основе ООП лежат два ключевых понятия: Класс и Объект.

    Чтобы понять разницу, представьте себе работу архитектора.

  • Класс — это чертеж или схема. На чертеже написано: «Дом должен иметь стены, крышу, дверь и окна». Но в этом чертеже нельзя жить. Это просто описание.
  • Объект (или экземпляр класса) — это конкретный дом, построенный по этому чертежу. У него есть реальные стены, зеленая крыша и дубовая дверь.
  • По одному чертежу (классу) можно построить сколько угодно домов (объектов), и они могут отличаться деталями (цветом стен, материалом двери), но структура у них будет одна.

    !Визуализация различия между абстрактным классом-чертежом и конкретными объектами-домами.

    Создание первого класса

    В PHP класс создается с помощью ключевого слова class. Давайте создадим класс User (Пользователь).

    Здесь мы видим новые термины: * Свойства — это переменные, объявленные внутри класса. Они описывают состояние объекта (имя, возраст). * Методы — это функции внутри класса. Они описывают поведение объекта (что он умеет делать).

    Создание объекта

    Теперь, когда у нас есть чертеж, давайте создадим реального пользователя. Для этого используется слово new.

    Обратите внимание на синтаксис ->. Это оператор доступа к свойствам и методам объекта. Читается как «взять у объекта user1 свойство name».

    Ключевое слово user1, guest).

    Для этого существует псевдопеременная name;

    public function introduce() { // this->name; } }

    alex->name = "Alex"; maria = new User(); maria->introduce(); // Выведет: Меня зовут Maria php class BankAccount { private amount) { if (this->balance += amount. "; } }

    public function getBalance() { return account = new BankAccount(); account->balance; // ОШИБКА! Доступ к приватному свойству запрещен. echo "Баланс: " . account->balance = 1000000 без прохождения проверки.

    Магические методы: Конструктор

    В PHP есть специальные методы, которые начинаются с двойного подчеркивания __. Самый важный из них — __construct.

    Конструктор запускается автоматически в момент создания объекта (new). Это идеальное место для начальной настройки объекта.

    Раньше нам пришлось бы писать три строчки кода (создать, присвоить бренд, присвоить цвет), а теперь достаточно одной.

    Наследование: не повторяй себя

    Второй кит ООП — Наследование. Оно позволяет создать новый класс на основе существующего, переняв все его свойства и методы.

    Допустим, у нас есть общий класс Animal (Животное), и мы хотим создать Dog (Собака) и Cat (Кошка).

    Класс Dog получил свойство Sab\cdotlength; private a, this->length = this->width = this->length * rect = new Rectangle(10, 5); echo "Площадь: " . this — ссылка на текущий объект.

  • Инкапсуляция (private, public) защищает данные.
  • Наследование (extends) позволяет переиспользовать код.
  • В следующей статье мы углубимся в работу с базами данных и научимся сохранять объекты PHP в настоящую таблицу MySQL, чтобы данные не пропадали после обновления страницы.

    5. Работа с формами, сессиями и подключение к базе данных MySQL

    Работа с формами, сессиями и подключение к базе данных MySQL

    Добро пожаловать на пятый модуль курса «Основы программирования на PHP». До этого момента наши программы жили «в вакууме»: данные задавались прямо в коде, а после обновления страницы все результаты вычислений исчезали. В реальном мире веб-приложения работают иначе. Они взаимодействуют с пользователем, запоминают его настройки и хранят гигабайты информации годами.

    Сегодня мы превратим наш скрипт в полноценное веб-приложение. Мы разберем три фундаментальные темы:

  • HTML-формы: как получить данные от пользователя.
  • Сессии: как запомнить пользователя между страницами.
  • Базы данных (MySQL): как сохранить информацию навсегда.
  • Обработка форм: диалог с пользователем

    Интернет — это обмен информацией. Когда вы вводите логин и пароль или пишете комментарий, вы отправляете данные на сервер через HTML-формы. PHP был создан именно для того, чтобы эти данные принимать и обрабатывать.

    Суперглобальные массивы

    В PHP есть специальные встроенные массивы, которые доступны в любой части кода (поэтому они называются суперглобальными). Два самых важных для нас сейчас — это _POST.

    !Визуализация различий между методами передачи данных GET и POST

    Метод GET

    Метод GET передает данные прямо в адресной строке браузера. Вы наверняка видели ссылки вида site.com/search.php?query=iphone&sort=price. Здесь query и sort — это ключи, а iphone и price — значения.

    Пример ссылки: <a href="profile.php?id=5">Профиль пользователя 5</a>

    В файле profile.php мы можем получить это число так:

    Чтобы «забыть» пользователя (например, при нажатии кнопки «Выход»), используется session_destroy().

    Базы данных: MySQL и PDO

    Переменные живут доли секунды, пока выполняется скрипт. Сессии живут, пока открыт браузер. Но данные пользователей, статьи и товары должны храниться годами. Для этого используются Базы Данных (БД).

    Самая популярная связка в вебе — PHP + MySQL. MySQL — это система управления базами данных, которая хранит информацию в таблицах (как Excel, но гораздо мощнее).

    Подключение к базе данных

    Раньше в PHP использовали функции mysql_connect, но они давно устарели и небезопасны. Современный стандарт — библиотека PDO (PHP Data Objects). Она безопасна, поддерживает ООП и позволяет работать с разными базами данных (MySQL, PostgreSQL, SQLite) через одни и те же команды.

    Для подключения нам нужно знать 4 параметра:

  • Хост (адрес сервера, обычно localhost).
  • Имя базы данных.
  • Имя пользователя (на локальном сервере часто root).
  • Пароль (на локальном сервере часто пустой).
  • В этом случае база данных сама позаботится о том, чтобы превратить данные в безопасный текст, даже если в имени пользователя будут кавычки или спецсимволы.

    Заключение

    Сегодня мы объединили все знания воедино. Мы научились:

  • Принимать данные через _SESSION.
  • Безопасно записывать и читать данные из MySQL с помощью PDO.
  • Теперь вы обладаете полным набором инструментов для создания блога, гостевой книги или простого интернет-магазина. Это база, на которой строится весь современный бэкенд.

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