PHP уроки коллекция уроков по php программированию


Содержание

Самоучитель PHP для начинающих

Привет! Этот самоучитель создан для тех, кто хочет научиться программировать на PHP с нуля.

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

Что нужно знать?

Очень желательно знание самых-самых основ HTML, например что такое тег и чем отличается от . Больше никаких знаний не требуется.

Чему я научусь?

Советы по обучению

Переписывайте код из статей вместо копирования — так будет проще привыкнуть к синтаксису PHP.

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

Ну что, готовы? Переходим к изучению языка программирования PHP.

Уроки PHP. По материалам форума forum.php.su

» Начало. Введение.
» Начало. Отладка.
» Урок № 1 — Самые основы.
» Урок № 2 — Не много управления.
» Урок № 3 — Знакомство с функциями.
» Урок № 4 — Как читать документацию.
» Урок № 5 — Математические функции
» (скоро) Урок № 6 — Функции работы со строками
» (скоро) Урок № 7 — Функции работы с массивами
» Урок №8 — Работа с файлами.
» Урок № 9 — Работа с базой данных и основы SQL.
» Урок № 10 — Дата и время.
» Урок № 11 — CURL
» Урок № 12 — GD — работа с изображениями.
» Урок № 13 — Красивый скрипт или стили программирования.
» Урок № 14 — Безопасное программирование.
» Приложение № 1 — Установка Apache, PHP и Mysql.
» Приложение № 2 — Пара слов о проектировании баз данных.
» Приложение № 3 — О регулярных выражениях.

Несколько слов от авторов материалов:

Уроки php совместными усилиями

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

Если вы можете осветить какую-нибудь часть урока поподробнее, пояснить лучше или
добавить что-нибудь интересное, нашли ошибку или имеете вопрос напрямую
касающийся урока — пожалуйста оставьте свое сообщение в теме, и уверен
если будет надобность — уроки будут отредактированы.

Если вы скопировали код слово в слово и у вас не работает, дайте нам знать.
Если вы что-то изменили, а потом у вас перестало работать — мы создали для вас
специальный форум Программирование на php
и будем рады помочь вам освоить и устранить неполадки.

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

А на кого нацелены эти уроки, для чего они такие вообще нужны ?

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

Уроков будет три части. Для самых начинающих, для самых продвинутых включающие теории и парадигмы программирования, и серия для тех кто активно переходит из первых во вторых на практических примерах.

Курс PHP для начинающих

Обучение основам программирования на PHP
Первые 10 уроков бесплатно!

Что Вы получите после прохождения курса PHP для начинающих

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

В курсе всё изучается очень подробно — начинается обучение с того, как вообще работает PHP. Рассказывается о современных инструментах и подходах. И, конечно же, даются домашние задания, которые я лично проверяю. Здесь мы с вами и установим локальный веб-сервер, и научимся работать в редакторе кода, и, конечно же, напишем свои первые программы на PHP.

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

Отзывы учеников

Сертификат

Преимущества

Проверка домашек

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

Быстрая помощь

Все ученики имеют доступ к общему Telegram-чату, в котором можно задать вопросы и получить ответ в течение 10 минут.

Честная цена

Не, ну Вы видели эти цены на курсы в десятки тысяч рублей?
У меня Вы пройдёте обучение по цене, сравнимой с покупкой книги.

Гарантия

Если Вас что-то не устроит — просто напишите мне любым удобным способом. И я верну Вам деньги в тот же день.

Об авторе курса

Привет! Меня зовут Артём Ивашкевич. Я работаю веб-разработчиком более трёх лет. Сейчас я работаю в компании Зарплата.ру — это крупный проект, над которым трудятся более 50 разработчиков, его ежемесячная посещаемость более 4 млн человек.

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

Привет! Меня зовут Артём Ивашкевич. Я работаю веб-разработчиком более двух с половиной лет. Сейчас я работаю в компании Зарплата.ру — это крупный проект, над которым трудятся более 50 разработчиков, его ежемесячная посещаемость более 4 млн человек.

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

Программа курса

Уровень 1. Введение в курс PHP для начинающих

Уровень 2. Настройка окружения

Уровень 3. Основы разработки

  • 5. Выражения в PHP
  • 6. Переменные в PHP
  • 7. Типы данных в PHP
  • 8. Операторы в PHP
  • 9. Условия в PHP
  • 10. Функции в PHP
  • 11. Отладка PHP-кода с помощью Xdebug в PHPStorm
  • 12. Подключение файлов в PHP


Уровень 4. Циклы и массивы

  • 13. Изучаем массивы в PHP
  • 14. Цикл foreach в PHP
  • 15. While: самый простой цикл в PHP
  • 16. Цикл for: работаем с числами
  • 17. Операторы break и continue в PHP
  • 18. Изучаем функции для работы с массивами

Уровень 5. Взаимодействие с пользователем

  • 19. GET-запросы в PHP
  • 20. Обрабатываем POST-запросы в PHP
  • 21. Пишем калькулятор на PHP
  • 22. Учимся работать с cookie в PHP
  • 23. Система авторизации с помощью cookie на PHP

Уровень 6. Работа с файлами

  • 24. Учимся работать с файлами в PHP
  • 25. Загрузка файлов на сервер
  • 26. Пишем фотоальбом на PHP

Уровень 7. Ещё немного практики

Уровень 8. Заключение

Для чего нужен PHP начинающему программисту

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

Оптимизировать администрирование сайта позволяет использование PHP (акроним для PHP: Hypertext Preprocessor «гипертекстовый препроцессор») – скриптового языка программирования, позволяющего создавать динамически наполняемые веб-страницы. Его применение дает возможность сделать ресурс действительно интерактивным, а процесс управление сайтом – простым и менее затратным в плане приложенных усилий. Онлайн курс PHP для начинающих от WebShake помогает овладеть основами скриптового языка с нуля, научиться создавать динамические ресурсы, которые легко модифицировать и поддерживать.

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

Преимущества языка PHP

Hypertext Preprocessor отличает в первую очередь его практическая направленность. Богатая функциональность PHP позволяет эффективно решать самый широкий круг задач. А простота использования дает возможность делать это быстро и с минимумом усилий. Наш бесплатный курс по PHP для начинающих помогает овладеть этим скриптовым языком, который на сегодняшний день является наиболее востребованным и применяется для создания огромного количества интернет-ресурсов (включая популярные соцсети и блоги).

Традиционность PHP (благодаря заимствованию целого ряда конструкций из C и Perl и сочетанию в себе достоинств этих языков) наряду с интуитивной доступностью и универсальностью синтаксиса делает процесс обучения несложным (в особенности для людей, знакомых с основами программирования). Если же в процессе ознакомления с курсом все-таки возникнут некоторые затруднения, я готов ответить на любые вопросы, которые можно задавать в комментариях к урокам.

Высокая скорость выполнения сценариев повышает эффективность и востребованность PHP, а способность интегрироваться с другими языками (в частности, HTML, JavaScript) позволяет подстраивать Hypertext Preprocessor под потребности конкретного веб-разработчика.

Возможности PHP

Разработка сайта с использованием этого скриптового языка позволяет:

  • Уменьшить потребности интернет-страницы в ресурсах. Веб-приложение занимает меньше места, становится «легче», а значит – быстрее открывается.
  • Значительно упростить процесс управления интернет-страницей, внесения изменений. Статичные сайты не отвечают реалиям сегодняшнего дня, так как попросту не успевают за происходящим вокруг. Невозможность идти в ногу со временем в конечном счете сказывается на посещаемости.
  • Обеспечить эффективный анализ работы сайта (вести статистику посещаемости и т. д.).

Эффективность Hypertext Preprocessor по достоинству оценена крупнейшими компаниями. Наш курс по PHP для начинающих позволяет не отвлекаясь от работы или учебы приобрести необходимые навыки и знания для успешного построения карьеры в сфере веб-разработки.

Хочу научиться программировать на PHP. С чего начать?

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

Зачем учить PHP?

Среди главных преимуществ языка:

  • простота и низкий порог вхождения;
  • эффективность для решения задач веб-разработки;
  • множество удобных фреймворков;
  • востребованность навыков: на рынке есть много вакансий как для Junior PHP-разработчиков, так и для опытных Senior’ов;
  • возможность использования в изолированной среде;
  • большое количество материалов для изучения языка, активное сообщество.

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

Что учить?

  • основы языка: синтаксис, типы данных, переменные, функции, константы, массивы, объекты, выражения;
  • основы HTML, CSS и веб-дизайна;
  • реляционные БД;
  • Linux, HTTP, Nginx, Apache;
  • FTP, Git и другие инструменты;
  • шаблоны проектирования;
  • Object-relational mapping (ORM);
  • Model-View-Controller (MVC);
  • фреймворки и микрофреймворки;
  • тестирование;

  • средства виртуализации: Vagrant, Docker.

Где писать код?

Попробуйте каждую среду разработки и поймёте, с какой платформой вам комфортнее всего работать:

Уроки PHP

Изучение PHP | Урок №1 — Основы PHP

Видеоурок

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

Базовое представление о PHP

PHP – это аббревиатура от «Hypertext Preprocessor». Корни синтаксиса уходят глубоко в C, Java и Perl. Этот язык довольно легко даётся к изучению. Главным же его преимуществом является быстрый и простой доступ к генерированию веб-страниц. Ещё одно важное достоинство PHP в сравнении с Perl или C – блоки PHP-кода можно внедрять прямо в документ с HTML.

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

На основе PHP реально создавать высокопроизводительные и нагруженные веб-приложения в сжатые сроки. Готовые продукты несложно редактировать, улучшать и поддерживать.

PHP один из тех языков, с которых можно начинать путь программиста. Несмотря на лёгкость освоения, язык очень функционален, он готов выполнять даже сложные задачи. Если вы не знаете ничего о PHP и программировании в целом, особого труда с освоением возникнуть не должно. Нет сомнений, что уже спустя пару часов изучения PHP вы научитесь создавать первые скрипты.

PHP относится к тем языкам, что регулярно улучшаются и развиваются. Он точно будет занимать лидирующие места в сфере веба ещё достаточно долго. Ближайшие 5-10 лет программисты на PHP будут востребованы.

Что значит «серверный язык»?

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

Практическая сторона вопроса:

  • Удобно создавать страницы или их фрагменты, которые будут одинаково или по-разному отображаться у каждого пользователя;
  • PHP все равно, какая производительность компьютера у пользователя или какая операционная система стоит. Вся обработка данных происходит на сервере;
  • Для получения новых данных на странице обязательно потребуется её обновление (если не прибегать к JS). До обновления страницы стандартными средствами PHP нельзя что-либо менять на ней. Иначе говоря, язык не интерактивный. С помощью Ajax, уже реально обновлять данные веб-страницы без её перезагрузки.
Илон Маск рекомендует:  Что такое код pg_lo_tell

Советы начинающим программистам

Как вы уже поняли, PHP применяется для разработки сайтов. В создании веба участвуют и другие языки, ключевые из них HTML и CSS . Исключительно с помощью PHP не создать сайт. HTML – это структура страницы, а CSS – её стили (цвета, расположение, эффекты и т. п.). Простой вывод: вместе с PHP нужно учить и другие веб-языки.

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

У нас на сайте уже есть курсы по изучению PHP, HTML и CSS, которые помогут преодолеть пропасть между начинающим и профессиональным программистом.

Сегодня PHP сохраняет актуальность, при чём уже давно. Хоть и существуют достойные альтернативы языку, но согласно статистике w3techs , 83% сайтов применяют именно PHP в качестве основного серверного языка. Это значит, что разработчику на PHP всегда найдётся работа с конкурентной оплатой.

Дополнительные курсы

Также на нашем сайте есть дополнительные курсы по изучению PHP. Все курсы вы можете найти по этой ссылке .

Курс PHP / MySQL

Интерактивный онлайн курс PHP программирования сайтов для начинающих — Онлайн обучение PHP с нуля

В видео-курсе Вы изучите основы языка PHP для создания веб-сайтов, познакомитесь с объектно-ориентированным программированием, научитесь работать с базами данных MySQL, освоите популярные библиотеки, работу с парсерами и многое другое.
Изучите онлайн уроки программирования на Php и MySql с нуля и создавайте собственные сайты!

Онлайн курс PHP / MySQL программирования для начинающих

Поделитесь страницей с друзьями

О курсе — Чему Вы научитесь?

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

В процессе обучения Вы получите знания и навыки:

  • Что такое язык PHP и его применение
  • Конструкции PHP — переменные, операторы, циклы, массивы, классы, функции
  • Написание функций под свои задачи
  • Объектно-ориентированное программирование (ООП)
  • Полиморфизм, инкапсуляция, наследование, абстрактный класс, интерфейс в ООП
  • Веб-сервер APACHE, установка и конфигурирование
  • Система администрирования сайта PhpMyAdmin
  • Проектирование структуры таблиц базы данных
  • Работа с XML и JSON форматами
  • Передача данных HTML-формы — методы GET и POST
  • Безопасность — как защитить сайт от взлома
  • Базы данных MySQL, основные операции
  • SQL-запросы, синтаксис, работа с Active Records
  • Создание парсеров для сбора информации для сайта

В видео-уроках курса Вы получите полезные советы и рекомендации по разработке собственных сайтов.

План курса

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

  • 1.1 Установка и настройка XAMPP (PHP, MYSQL, APACHE) 10:18
  • 1.2 Настройка виртуального хоста (Virtual Host) в XAMPP (опционально) 05:59
  • 2.1 Переменные в PHP 06:56
  • 2.2 Тестирование 00:15
  • 2.3 Тестирование 00:15
  • 2.4 Интерактивное задание 02:00
  • 2.5 Интерактивное задание 02:00
  • 2.6 Типы переменных и константы 03:02
  • 2.7 Тестирование 00:15
  • 2.8 Тестирование 00:15
  • 2.9 Интерактивное задание 03:00
  • 3.1 Ветвления. Условные операторы if else 06:33
  • 3.2 Тестирование 00:15
  • 3.3 Интерактивное задание 02:00

  • 3.4 Тестирование 01:00
  • 3.5 Ветвления. Условные операторы. Switch 07:41
  • 3.6 Тестирование 00:15
  • 3.7 Тестирование 00:15
  • 3.8 Интерактивное задание 02:00
  • 4.1 Циклы в PHP. Цикл while 05:07
  • 4.2 Тестирование 00:30
  • 4.3 Интерактивное задание 01:00
  • 4.4 Цикл DO WHILE 02:40
  • 4.5 Тестирование 00:30
  • 4.6 Цикл FOR 01:42
  • 4.7 Тестирование 00:15
  • 5.1 Массивы в PHP 07:52
  • 5.2 Интерактивное задание 05:00
  • 5.3 Массивы в PHP. Цикл Foreach 04:38
  • 5.4 Интерактивное задание 03:00
  • 5.5 Массивы. Способы создания массивов в языке PHP 03:45
  • 5.6 Тестирование 00:15
  • 5.7 Функции для работы с массивами 06:50
  • 5.8 Тестирование 00:15
  • 5.9 Тестирование 00:15
  • 5.10 Тестирование 00:15
  • 5.11 Интерактивное задание 03:00
  • 5.12 Интерактивное задание 02:00
  • 5.13 Функции implode и explode 07:28
  • 5.14 Интерактивное задание 02:00
  • 5.15 Тестирование 00:15
  • 5.16 Многомерные массивы в PHP 08:16
  • 5.17 Многомерные массивы. Способы создания 03:46
  • 6.1 Получение данных из HTML формы. Методы GET и POST 11:32
  • 6.2 Тестирование 00:15
  • 6.3 Тестирование 00:30
  • 6.4 Функции для работы со строками. Защита формы сайта 09:25
  • 6.5 Тестирование 00:15
  • 6.6 Тестирование 00:15
  • 6.7 Создание собственных функций. Валидация функций 07:37
  • 6.8 Тестирование 00:15
  • 6.9 Функции. Взаимодействие функций между собой 05:17
  • 7.1 MySQL и PHPMYADMIN. Начало работы 09:57
  • 7.2 Вывод данных из MySQL. Оператор SELECT 14:39
  • 7.3 Вставка данных в MySQL. Оператор INSERT 05:04
  • 7.4 Обновление данных в таблице MySQL. Оператор UPDATE 02:43
  • 7.5 Удаление данных из таблицы MySQL. Оператор DELETE 05:52
  • 7.6 Проектирование базы данных. Хранение данных в разных таблицах 08:05
  • 7.7 SQL запросы. INNER JOIN 05:06
  • 7.8 SQL запросы. LEFT JOIN и RIGHT JOIN 04:37
  • 8.1 Работа с XML. Чтение XML и вывод в браузер в виде массива 07:43

  • 8.2 Работа с XML. Создадим функцию для записи данных из XML в MySQL 11:55
  • 8.3 Работа с XML. Запишем данные из XML в базу 16:36
  • 8.4 Работа с файлами с помощью PHP 16:16
  • 9.1 ООП. Классы, Геттеры и Сеттеры 10:54
  • 9.2 ООП. Инкапсуляция 04:35
  • 9.3 ООП. Наследование 15:09
  • 9.4 ООП. Полиморфизм. Интерфейсы 07:35
  • 9.5 ООП. Полиморфизм. Абстрактные классы 16:19

Отзывы студентов о курсе

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

Самый понятный курс по php для начинающих

Самый понятный курс по php для начинающих

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

Если вы новичек, который запутался в синтаксисе, затерялся в фреймворках вроде yii2 и Laravel, и не понимает куда двигатся дальше — то это курс для вас. Мы создадим сайт с нуля без фреймворков, после чего вы обретете уверенность в себе и в своих знаниях PHP.

Перед началом прохождения курса вам нужно знать:

  • Массивы
  • Функции
  • Циклы и Операторы
  • Классы
  • Глобальные массивы
  • Основы запросов в MySQL

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

PHP уроки: коллекция уроков по php программированию

17.02.2020 12 16561

Для заданной точке на карте города нужно найти ближайшие станции метро и рассчитать расстояние до них. Все это должно отрабатывать на php скрипте которому переиздаются через ajax адрес который он обрабатывает на сервере и возвращает только N станции метро и расстояние до них (как к примеру в Яндекс картах), также рассчитывает время пешком до метро.

PHP — сумма прописью

06.07.2014 1 6277

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

Массивы в PHP

24.06.2014 0 1465

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

Переменные в PHP

24.06.2014 0 1433

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

Первая программа на PHP

24.06.2014 0 2251

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

Циклы, Функции.

24.06.2014 0 1797

В этом я расскажу про функциях и циклах. В начале покажу вам конструкцию if-else ее очень часто используют. Создадим переменную.

Уроки PHP

24.06.2014 0 1605

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

Кэширования сайта на стороне сервера

23.06.2014 0 2218

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

Упрощаем подключение php файлов: ini_set(include_path, $path)

23.06.2014 0 1930

Если вы работаете с большим проектом, где подключается очень много файлов из различных папок, наверняка вам причиняло неудобство при указании относительных или абсолютных путей в require_once(). Эту проблему можно решить раз и навсегда, указав директории для поиска “php библиотек”.

Сборник упражнений и задач по PHP

Пару слов о задачнике

Наш задачник по языку программирования PHP содержит стандартные упражнения и задачи с решениями на закрепление теоретических основ излагаемых в учебнике.

Если в ходе освоения учебного материала у вас возникнут трудности, пишите мне в индивидуальный ‘Чат с автором’ (по возможности стараюсь отвечать всем).

Чтобы посмотреть результат выполнения исходного кода решения задачи во фрейме кодового блока, используйте кнопку ‘Результат’ .

Оглавление задачника

§1.1. Введение в PHP

1. Создайте на локальном сервере Xampp в папке htdocs тестовую папку test , а в ней файл index.php . Для быстрого доступа к файлу создайте в браузере закладку, поскольку файл будет использоваться в дальнейшем для решения задач. Адресный путь к файлу должен иметь вид http://localhost/ test/ index.php .

2. Выведите на экран одна за другой четыре строки: ‘Всем ‘ , ‘привет ‘ , ‘от ‘ , ‘PHP!

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

3. Создайте переменную, присвойте ей число 5 и выведите его на экран. Создайте вторую переменную, присвойте ей число 10 и выведите его на экран. Выведите на экран сумму, разность, произведение и частное от деления значения первой переменной на значение второй переменной. Присвойте сумму значений этих двух переменных третьей и выведите итог на экран. Теперь увеличьте текущее значение третьей переменной на величину значения второй переменной и выведите его на экран. И, наконец, увеличьте текущее значение третьей переменной в два раза и выведите его на экран. Показать решение.

4. Восстановите по комментариям php -код условия. Показать решение.

Условие задачи №4

5. Восстановите по комментариям php -код условия. Показать решение.

Условие задачи №5

6. Создайте переменную $a и присвойте ей значение 20 . Создайте переменную $b и присвойте ей значение 10 . Теперь создайте переменную $car и присвойте ей строку с именем первой переменной. Выведите на экран $ <$car>. Создайте еще одну переменную $track и присвойте ей строку с именем второй переменной. Выведите на экран $ <$track>. Показать решение.

7. Создайте переменную $n и присвойте ей строку ‘number’ . Теперь попробуйте вывести на экран строку ‘$a’ . Что нужно сделать, чтобы переменная, находящаяся внутри строки была правильно распознана интерпретатором PHP ? Исправьте код и выведите строку на экран повторно. Показать решение.

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

Условие задачи №8

9. Создайте две глобальные переменные и присвойте им в качестве значений числа. Затем создайте пользовательскую функцию, которая будет выводить сумму значений этих глобальных переменных (используйте ключевое слово global ). Выведите результат сложения на экран. Показать решение.

10. Создайте глобальную переменную $a и присвойте ей число 1 . Затем создайте пользовательскую функцию, внутри которой создайте локальную статическую переменную $b и присвойте ей число 0 . Далее увеличьте текущее значение локальной переменной $b на величину значения глобальной переменной $a , т.е. прибавьте к текущему значению переменной $b значение глобальной переменной $a . Добавьте инструкцию вывода значения переменной $b на экран. После создания функции вызовите ее три раза и объясните результат. Показать решение.

11. Имена каких из переменных, указанных в условии, заданы неверно? Почему? Показать решение.

Условие задачи №11

12. Создайте две константы, использовав для этого функцию define() и служебное слово const . Выведите их значения на экран. Создайте пользовательскую функцию, которая будет создавать константу в локальной области видимости этой функции. Получится ли создать константу при помощи служебного слова const ? Осуществите вызов созданной функции. Выведите значение константы, созданной после вызова функции, на экран. Вызовите функцию еще раз. Объясните результат. Показать решение.

13. Создайте три переменные. Удалите при помощи функции unset() первую переменную и попробуйте вывести ее значение на экран. Удалите одновременно оставшиеся переменные, передав их функции в качестве аргументов через запятую. Попробуйте вывести их значения на экран. Показать решение.

§1.2. Типы данных

14. Создайте переменные, присвоив им логические значения true и false , вещественное число 43.658+e2 , но предварительно записав его в обычном виде, и корень квадратный из отрицательного числа, например, sqrt(-2) . Выведите значения всех переменных на экран. Показать решение.

15. Создайте три переменные и присвойте им строки: ‘Добро ‘ , ‘побеждает ‘ , ‘зло’ . Создайте еще одну переменную и присвойте ей объединенную строку (для конкатенации строковых переменных используйте обычную точку). Выведите ее на экран. Показать решение.

16. Создайте переменную и присвойте ей строку «На манёврах «красные» выступали против «синих»» , предварительно экранировав двойные кавычки внутри двойных во избежание ошибки. Выведите строку на экран. Как еще можно поступить для вывода строк, содержащих внутри себя двойные или одинарные кавычки, чтобы не использовать их экранирование? Показать решение.

17. Создайте переменную $number и присвойте ей число 125 . Затем создайте еще две переменные, присвоив им строки «Я число $number» , но использовав для этого синтаксисы heredoc и nowdoc . Выведите строки на экран и сравните результаты. Показать решение.

18. Создайте переменную $m_1 и присвойте ей массив, созданный при помощи конструкции array() и содержащий два элемента с ключами ‘фрукты’ и ‘овощи’ и соответствующими значениями ‘апельсины’ и ‘помидоры’ . Выведите на экран значение элемента массива с ключем ‘фрукты’ . Проделайте все тоже самое, но использовав переменную $m_2 и создав массив при помощи синтаксиса квадратных скобок. Показать решение.

Илон Маск рекомендует:  Шаблон сайта дизайн HTML, CSS, 1 страница

19. Создайте переменную $m_1 и присвойте ей массив, состоящий из двух элементов (ключи не указывайте). Выведите на экран значение второго элемента массива (не забываем, что нумерация элементов массива начинается с нуля). Добавьте в массив третий элемент, также не указывая его ключ. Выведите его значение на экран. Добавьте в массив еще один элемент, указав в качестве ключа число 5 . Выведите его значение на экран. Показать решение.

20. Посмотрите на условие задачи. При попытке вывода каких элементов массива будут выведены ошибки и почему? Показать решение.

Условие задачи №20

21. Создайте массив с двумя элементами. Измените значение первого элемента и выведите его на экран. Добавьте в массив еще один элемент в виде пустой строки и выведите его на экран. Добавьте в качестве нового элемента массива другой массив с тремя элементами и выведите на экран значение второго элемента этого массива. Показать решение.

22. Создайте массив с четырьмя элементами. Удалите второй элемент массива, использовав для этого функцию unset() . Попытайтесь вывести удаленный элемент на экран. Теперь удалите последние два элемента массива, передав их в качестве аргументов функции unset() через запятую. Попробуйте вывести на экран удаленный последний элемент массива. И, наконец, добавьте в массив элемент, который сам является массивом с двумя элементами. Удалите первый элемент добавленного массива и затем попробуйте вывести его на экран. Также выведите на экран оставшийся элемент добавленного массива. Показать решение.

23. Посмотрите на условие задачи и скажите, какие значения будут присвоены переменным после преобразования типов? Что будет выведено на экран при помощи оператора echo ? Не забывайте, что оператор перед выводом преобразует все значения в строки! Показать решение.

Условие задачи №23

§1.3. Выражения и операторы

24. Какие значения будут присвоены переменным в результате вычисления выражений? Выведите их на экран. Показать решение.

Условие задачи №24

25. Создайте переменную $a и присвойте ей стартовое значение 0 . Создайте переменную $b и присвойте ей выражение, состоящее из префиксного оператора инкремента и переменной $a . Выведите новое значение переменной $b и значение переменной $a на экран. Верните переменной стартовое значение, после чего проделайте тоже самое, но использовав постфиксный оператор инкремента. Объясните полученный результат. Для закрепления проделайте все тоже самое, но уже с префиксным и постфиксным операторами декремента. Показать решение.

26. Создайте переменную $a и присвойте ей стартовое значение 0 . Увеличьте значение переменной на 10 , использовав комбинированный оператор присваивания. Выведите новое значение на экран. Далее, используя соответствующие комбинированные операторы и выводя промежуточные результаты на экран, увеличьте значение переменной в два раза, уменьшите на 5 , разделите на 3 , возведите в квадрат и в конце найдите остаток от деления на 7 . Показать решение.

27. Создайте переменную $a и присвойте ей строку ‘Ну, ты и ‘ . Измените значение переменной, присоединив к строке еще одну строку ‘фрукт!’ . Используйте для этого комбинированный оператор присваивания с конкатенацией. Выведите новое значение на экран. Показать решение.

28. Каковы будут результаты сравнения в условии задачи? Проверьте свои ответы посредством вывода результатов на экран. Не забывайте, что результатом сравнения выражений является одно из логических значений true или false . Соответственно, при выводе оператор echo преобразует их либо в строку ‘1’ , либо в пустую строку » . Показать решение.

Условие задачи №28

29. Какие значения будут присвоены переменной $a в условии задачи? Проверьте свои ответы посредством вывода на экран. Не забывайте, что результатом логических выражений является одно из логических значений true или false . Соответственно, при выводе оператор echo преобразует их либо в строку ‘1’ , либо в пустую строку » . Показать решение.

Условие задачи №29

§1.4. Управляющие конструкции

30. Создайте переменные $a , $b и присвойте им положительные числа. Присвойте частное от деления $a / $b третьей переменной $d . Используя условный оператор if , осуществите схему вывода на экран значения переменной $d только в том случае, если оно является положительным числом. Проверьте работу скрипта, после чего измените одно из значений переменных на отрицательное число и снова запустите скрипт. Показать решение.

31. Создайте переменные $a , $b и присвойте им положительные числа. Присвойте частное от деления $a / $b третьей переменной $d . Используя условный оператор if , осуществите схему вывода на экран значения переменной $d только в том случае, если оно является положительным числом. Если число окажется отрицательным или равным нулю, должно выводиться соответствующее предупреждение, а не значение переменной. Проверьте работу скрипта, после чего измените одно из значений переменных $a или $b на отрицательное число и снова запустите скрипт. Показать решение.

32. Создайте переменные $a , $b и присвойте им положительные числа. Присвойте частное от деления $a / $b третьей переменной $d . Используя условный оператор if в связке с else if , осуществите схему вывода на экран значения переменной $d только в том случае, если оно является положительным числом. Если число окажется отрицательным или равным нулю, то для каждого случая должно выводиться соответствующее предупреждение. Проверьте работу скрипта, после чего измените одно из значений переменных $a или $b на отрицательное число и запустите скрипт снова. Чтобы проверить работу скрипта для нулевого значения, измените значение переменной $a на ноль. Показать решение.

33. Реализуйте условие задачи №32 при помощи оператора switch . Показать решение.

34. Создайте переменную и присвойте ей массив, состоящий из пяти элементов, например, чисел или строк. Создайте еще одну переменную, которой присвойте какое-нибудь значение. Теперь создайте конструкцию switch , которая будет определять, есть такой элемент в массиве или нет и выводить соответствующее сообщение. Для упрощения кода используйте операторы case , идущие друг за другом и содержащие метки в виде значений элементов массива, но не прерывающиеся операторами break . Не забудьте про условие по умолчанию, которое будет выводить сообщение, если элемента в массиве нет. Протестируйте конструкцию, присваивая второй переменной различные значения. Показать решение.

35. Создайте переменную $a и присвойте ей ноль в качестве стартового значения. Выведите на экран при помощи цикла while цифры от 1 до 5 , использовав для этого операцию префиксного инкремента переменной $a . Сбросьте значение переменной и сделайте тоже самое, но при помощи цикла do/while . Показать решение.

36. Создайте переменную $a и присвойте ей массив, состоящий из пяти элементов. Выведите все элементы массива на экран сперва при помощи цикла while , а затем и do/while . Показать решение.

37. Выведите все элементы массива из предыдущей задачи на экран при помощи цикла for . Обратите внимание на компактность кода. Показать решение.

38. Используйте цикл for для вывода на экран целых положительных чисел не превышающих 50 . Прервите цикл на 10 итерации при помощи внутреннего условного оператора if и оператора break . Показать решение.

39. Выведите на экран таблицу умножения. Используйте внешний и внутренний циклы for . Чтобы таблица имела привычный для нас ‘квадратный’ вид, в конце каждой итерации внешнего цикла задайте вывод разрыва строки. Показать решение.

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

41. Создайте массив, состоящий из пяти элементов в виде целых чисел. Увеличьте значения всех элементов массива в два раза, использовав для этого цикл foreach . Выведите на экран новые значения элементов массива. Показать решение.

42. Выведите на экран при помощи цикла for положительные целые числа от 1 до 10 . Затем используйте оператор continue , чтобы исключить из ряда числа 3 , 4 , 5 . Попробуйте разместить оператор continue до и после инструкции вывода значений на экран и объясните результат. Показать решение.

43. Используйте условие задачи №39, но исключите из таблицы столбик умножения на 5 . Для этого прервите внутренний цикл оператором continue при $k==5 . Показать решение.

44. Задайте бесконечный цикл for , который будет выводить квадраты целых положительных чисел. Цикл будет бесконечным, если второй параметр в условии будет отсутствовать. Если квадрат числа превысит 70 , прервите цикл при помощи оператора goto , который будет осуществлять переход к метке после цикла для вывода соответствующего сообщения. Показать решение.

§1.5. Функции

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

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

47. Создайте две переменные и присвойте им числовые значения. Теперь создайте пользовательскую функцию, принимающую два аргумента со значеними по умолчанию и выводящую произведение своих аргументов. Вызовите функцию, передав ей сперва в качестве аргументов значения переменных, затем значение только одной из переменных и, наконец, вообще без аргументов. Объясните полученные результаты. Показать решение.

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

49. Создайте две переменные $sum и $product и присвойте им стартовые значения, равные 0 и 1 . Создайте пользовательскую функцию, принимающую два аргумента по ссылке, а все остальные по значению в массив переменной длины. Функция должна вычислять сумму всех аргументов, переданных в массив переменной длины, и присваивать ее первому аргументу. Второму аргументу она должна присваивать произведение всех аргументов, переданных в массив переменной длины. Возвращать функция должна массив, состоящий из первых двух аргументов, переданных функции (т.е. сумму и произведение). Используйте для доступа к элементам массива цикл foreach . Вызовите функцию, передав ей в качестве первых двух аргументов наши переменные, а также три числа. Выведите на экран значения возвращенного массива, а также значения наших переменных. Объясните результат. Показать решение.

50. Создайте пользовательскую функцию, которая будет выводить на экран сумму первых двух переданных ей аргументов. Количество передаваемых функции аргументов не указывайте. Если функция будет получать более двух аргументов, она должна выдавать соответствующее предупреждение и не выводить сумму. Вызовите функцию, передав ей в качестве аргументов массив из двух чисел и развернув его в простые аргументы при помощи ‘. ‘ . Повторите тоже самое для массива из трех чисел. Напомним, что количество переданных функции элементов можно узнать при помощи функции func_num_args() , а получить доступ к ним можно при помощи функции func_get_arg(n) . Показать решение.

51. Задайте режим строгой типизации (используйте инструкцию declare(strict_types=1); ), после чего создайте пользовательскую функцию, которая будет принимать два целочисленных аргумента и выводить на экран их сумму. Вызовите функцию, передав ей в качестве аргументов сперва два целых числа, а потом одно из них в виде строки. Закомментируйте строку с инструкцией строгой типизации и перезапустите скрипт. Объясните результат. Показать решение.

52. Задайте режим строгой типизации (используйте инструкцию declare(strict_types=1); ), после чего создайте пользовательскую функцию my_func() , которая будет принимать два целочисленных аргумента и возвращать их произведение. Создайте переменную $count_apples и присвойте ей строку с именем функции. Обратитесь к функции через переменную и выведите на экран общую массу яблок зная, что имеется 23 корзины по 7 кг яблок в каждой. Показать решение.

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

§1.6. Классы и объекты

54. Создайте класс, в котором задайте константу, общедоступные свойство и метод класса. Метод класса должен выводить какое-нибудь сообщение. Создайте экземпляр класса. Вызовите метод класса, а также выведите на экран сумму значений константы класса и его свойства. Не забудьте, что для доступа к константе класса нужно использовать двойное двоеточие ‘::’ , а не объектный оператор ‘->’ . Показать решение.

55. Имеется 7 корзин. Нужно разработать класс, который будет подсчитывать общую массу яблок в зависимости от вместимости корзин. Для этого создайте сам класс. Затем создайте константу класса, которой присвойте количество корзин. Объявите свойство класса, но не инициализируйте его. Свойство будет отвечать за вместимость корзины в килограммах. И, наконец, объявите метод, который будет принимать в качестве аргумента вместимость корзины, т.е. значение соответствующего свойства, а возвращать произведение количества корзин (значение нашей константы) на вместимость одной корзины. После оформления класса, создайте его экземпляр и выведите на экран количество корзин. Не забудьте, что для доступа к константе класса нужно использовать двойное двоеточие ‘::’ , а не объектный оператор ‘->’ . Затем присвойте свойству класса положительное число и выведите на экран общую массу яблок, которую могут вместить все корзины, использовав для этого оператор echo и вызов метода класса. Показать решение.

56. Используйте условие задачи №54, но объявите свойство класса статическим. Не забудьте сразу же изменить и последующий код скрипта! Показать решение.

57. Используя условие задачи №55, создайте класс-потомок. В нем объявите общедоступное свойство $price и создайте метод product_price() , который аналогичным образом будет вычислять общую стоимость всех яблок. После чего выведите общее количество корзин, массу и стоимость всех яблок на экран. Показать решение.

58. Используя условие задачи №57, создайте класс-потомок уже созданного класса-потомка. В нем объявите константу sale , которая будет отвечать за размер скидки, и создайте метод product_sale() , который будет определять величину скидки в зависимости от общей массы приобретенных яблок. При определении метода используйте конструкцию parent:: для доступа к методу product_price() и конструкцию self:: для доступа к константе sale . Метод должен давать скидку, если масса купленных яблок превысит 50 кг. После оформления класса-потомка, создайте объект класса, установите массу яблок, которые помещаются в одну корзину, в 12 кг, а стоимость одного килограмма в 1.6 у.е. Далее выведите на экран общее количество корзин, общую массу яблок в корзинах, а также стоимость всех яблок без скидки и со скидкой. Показать решение.

59. Внимательно изучите условие задачи и закомментируйте неверные инструкции. Показать решение.

Условие задачи №59

60. Создайте абстрактный класс, который будет содержать два абстрактных защищенных метода return_car_name() и return_car_price() , а также один обычный общедоступный метод return_year($year) , принимающий год выпуска автомобиля, а возвращающий строку «Год выпуска авто: <$year>» . После оформления абстрактного класса, создайте два класса-потомка bmw_car и ford_car . Абстрактный метод return_car_name() после реализации должен возвращать строку с маркой автомобиля, а return_car_price() , соответственно, его цену в виде числа. Создайте экземпляр первого класса и вызовите его методы, а затем повторите тоже самое со вторым классом. Показать решение.

Илон Маск рекомендует:  Что такое код iis администрирование

61. Объявите два интерфейса, а в каждом из них по дному общедоступному методу. Реализуйте оба интерфейса в классе. Методы после реализации должны принимать по одному аргументу, а затем просто возвращать их. Создайте объект класса и выведите на экран остаток от деления результата вызова первого метода на результат вызова второго метода. Методам в качестве аргументов передайте целые числа. Не забывайте, что при реализации интерфейсов в классе используется служебное слово implements , а служебное слово extends используется при наследовании интерфейсов друг от друга. При этом разрешается наследовать сразу несколько интерфейсов, разделяя их запятыми. Показать решение.

62. Объявите два трейта, а в каждом из них по одному общедоступному методу, каждый из которых должен принимать по одному аргументу, а затем просто возвращать его. Реализуйте оба трейта в классе. Создайте объект класса и выведите на экран остаток от деления результата вызова первого метода на результат вызова второго метода. Методам в качестве аргументов передайте целые числа, которые вы использовали в предыдущей задаче с интерфейсами. Сравните результаты. Не забывайте, что при реализации трейтов в классе используется служебное слово use , при этом разрешается наследовать сразу несколько трейтов, разделяя их запятыми. Показать решение.

63. Измените условие предыдущей задачи, объявив методы защищенными и задав им одинаковые имена. Реализуйте оба трейта в классе. Создайте объект класса и выведите на экран остаток от деления результата вызова первого метода на результат вызова второго метода. Методам в качестве аргументов передайте целые числа, которые вы использовали в предыдущей задаче. Сравните результаты. Не забывайте, что при реализации трейтов, у которых присутствуют методы с одинаковыми именами, используются служебные слова insteadof и as . Первое из них позволяет указать, метод которого из трейтов следует использовать, а второй позволяет изменить область видимости метода или же использовать его под другим именем. Показать решение.

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

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

66. Создайте класс, объявите в нем два общедоступных свойства, а также метод __clone , который будет увеличивать значение первого свойства на единицу. Значение первого свойства, соответственно, установите в 0 , а второму присвойте строку ‘Неизменяемое свойство’ . Создайте экземпляр класса и выведите на экран значения свойств. Затем клонируйте объект и выведите на экран значения свойств клона. Объясните полученный результат. Показать решение.

67. Присвойте переменной анонимный класс. В классе объявите закрытое свойство, но не инициализируйте его. Для того, чтобы получить возможность инициализации свойства вне класса используйте метод перегрузки __set , а для получения его значения – метод __get . Сделайте так, чтобы в случае неинициализированного свойства метод выводил соответствующее предупреждение. После оформления класса попытайтесь вывести значение свойства на экран. Затем присвойте свойству значение и повторите попытку. Объясните результат. Показать решение.

68. Задайте режим строгой типизации (используйте инструкцию declare(strict_types=1); ), после чего объявите класс A . В нем создайте общедоступный метод, который будет просто возвращать свой числовой (!) аргумент. Затем создайте еще один общедоступный статический метод, который будет принимать два числовых аргумента, а затем выводить на экран произведение вызова первого метода, которому будет передаваться в качестве аргумента первый аргумент данного статического метода, на второй аргумент метода. На первый метод сошлитесь при помощи конструкции self:: . Создайте класс-потомок B , в котором переопределите первый метод таким образом, чтобы он возвращал не сам аргумент, а его квадрат. После оформления вызовите из второго класса первый метод. Объясните результат. Замените в скрипте конструкцию self:: на static:: и вызовите метод повторно. Объясните изменение результата. Показать решение.

§1.7. Пространства имен

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

70. Объявите пространство имен, в котором создайте константу, переменную $b , функцию и класс. Переменной присвойте какое-нибудь число. В функции реализуйте возврат переданного ей аргумента. В классе объявите общедоступный статический метод, выводящий на экран сумму квадратов двух чисел. Далее объявите какое-нибудь подпространство, куда импортируйте константу, функцию и класс созданного ранее пространства имен, использовав их под псевдонимами C , F , CL . Находясь в созданном подпространстве выведите на экран значение константы C , переменной $b , вызова функции F и вызова метода класса CL . Показать решение.

§2.1. Краткий обзор некоторых встроенных возможностей PHP

71. Дан массив [«Dima», 11, true, null, [33,44], 1.23] . Нужно вывести информацию о его элементах на экран. Каждый вывод информации об элементе массива должен нумероваться, начиная с единицы. Для решения задачи используйте цикл foreach и функцию var_dump() . Показать решение.

72. Дан тот же массив [«Dima», 11, true, null, [33,44], 1.23] . Нужно вывести информацию о типе каждого его элемента на экран, например, «3-й элемент массива является строкой». Каждый вывод информации о типе элемента массива должен нумероваться, начиная с единицы. Для решения задачи используйте цикл foreach , оператор switch и функции is_int , is_string и т.д. Полный список функций посмотрите в официальном справочнике. Показать решение.

73. Создайте массив, в который поместите все натуральные числа, не превышающие 20 . Теперь измените все четные значения массива, увеличив их в три раза. Выведите их на экран. Для решения задачи создайте соответствующую callback-функцию , передав ей аргумент по ссылке, а затем используйте функцию array_walk() , передав ей в качестве второго аргумента созданную callback -функцию. Не забудьте посмотреть описание функции в официальном справочнике. Показать решение.

74. Создайте массив, в который поместите все натуральные числа, не превышающие 15 . Отфильтруйте полученный массив при помощи функции array_filter() , удалив из массива все нечетные значения. Выведите оставшиеся элементы массива на экран. Показать решение.

75. Создайте массив, в который поместите все простые числа, не превышающие числа 25 . Далее отсортируйте элементы массива так, чтобы они шли по убыванию, т.е. в обратном порядке, и выведите их на экран. Напомним, что натуральное число, большее единицы, называется простым, если оно делится без остатка только на единицу и на само себя. Показать решение.

76. Выделите из строки ‘Иван_Иванов’ имя и фамилию и выведите их на экран. Используйте для поиска позиции первого вхождения разделителя в строку функцию mb_strpos() , а для получения требуемых подстрок функцию mb_substr() . Опять же, обязательно смотрите описание функций в соответствующем разделе официального справочника. Показать решение.

77. Создайте функцию match_letter() , которая будет в качестве первого аргумента принимать строку $str и проверять ее на соответствие допустимым символам массива $alphabet , который будет передаваться в качестве второго аргумента. Результат проверки функция должна выводить на экран. Проверьте с помощью этой функции на наличие запрещенных символов строки ‘s-1’ , ‘S_20’ и ‘3_S’ , если в качестве массива допустимых символов передается массив [‘s’,’_’,’1′,’2′,’3′] . Для решения задачи используйте внешний цикл for по всем символам строки (длину строки можно узнать при помощи mb_strlen() ), а также внутренний цикл for по всем элементам массива (число элементов массива можно узнать при помощи count() ). Во внутреннем цикле следует сравнивать текущий символ строки со всеми символами массива, чтобы установить его допустимость. Если вы не смогли решить задачу, обязательно разберите код решения, заглядывая в официальный справочник, и наберите код самостоятельно. Показать решение.

78. Вычислите выражение (sin30°+3/4)/|1/5-3/7|+log10100 . Для решения используйте математические функции, имеющиеся в PHP . Показать решение.

79. Выведите на экран время по Минску в виде двух строк следующего формата: Дата: 21.02.2020 (Среда) , Время: 16ч. 20мин. 37сек . Для установки часового пояса Минска используйте date_default_timezone_set() , названия дней недели переведите на русский при помощи оператора switch и массива, возвращаемого функцией getdate() . Чтобы в формате даты месяцы до десятого шли с нулем, используйте условный оператор if с соответствующим условием. Показать решение.

80. Установите пользователю куки на десять секунд с датой последнего посещения страницы. Дата должна выводиться ему при каждом новом посещении в формате » Прошлый раз вы посещали страницу 21.2.2020 в 18ч. 18мин. 41сек. по Минскому времени «. В случае первого посещения страницы выведите соответствующее сообщение. Для получения массива с данными даты сервера используйте функции предыдущей задачи. Показать решение.

81. Напишите простейший скрипт счетчика посещений страницы на основе сессий. Для хранения данных счетчика используйте суперглобальный массив $_SESSION . Показать решение.

§2.2. Расширения для работы с файловой системой

82. Если вы еще не создали на локальном сервере папку test , сделайте это. Она будет служить корневой папкой нашего учебного сайта на локальном сервере.
Создайте в папке файл start_file.php со скриптом, который будет проверять наличие в текущей корневой папке и, в случае необходимости, создавать файлы .htaccess и index.html . Если создаваемый файл уже будет существовать либо возникнет ошибка создания файла, скрипт должен будет вывести соответствующее предупреждение. Запустите скрипт пару раз. Затем удалите один из созданных файлов, еще раз запустите скрипт и посмотрите результ. Для решения задачи используйте функции file_exists() и touch() . Показать решение.

83. Запишите в файл .htaccess , созданный в предыдущей задаче, следующее содержимое.

Выведите содержимое файла и его размер на экран. Для записи используйте функцию file_put_contents() , которая в случае необходимости требуемый файл сперва создаст, а для получения содержимого функцию file_get_contents() . Чтобы содержимое выводилось на экран в две строки, используйте функцию nl2br() , которая добавит перед переносом строки
. Показать решение.

84. Запишите в файл index.html , созданный в задаче 82, следующее содержимое.

Выведите содержимое файла на экран. На этот раз для записи используйте функцию fopen() в режиме ‘wb’ , а также функции fwrite() и fclose() . Для получения содержимого опять используйте функцию file_get_contents() . Показать решение.

85. Создайте при помощи php -скрипта в корневом каталоге test на локальном сервере каталог css , а в нем файл styles.css . В случае существования директории либо возникновения ошибки, скрипт должен выводить соответствующее предупреждение. Для создания каталога используйте функцию mkdir() . При этом учтите, что функция в случае неудачи не только возвращает false , но и выводит ошибку уровня E_WARNING . Поэтому сначала присвойте результат выполнения функции переменной, использовав перед выражением оператор подавления ошибок ‘@’ , и только затем составляйте условную конструкцию с оператором if . Показать решение.

86. Если вы решили все предыдущие задачи, то в корневом каталоге test на локальном сервере должны присутствовать: файлы .htaccess и index.html , каталог css , а в нем файл styles.css , а также файл со скриптом edit_file.php . Теперь создайте в корневой папке при помощи скрипта еще один каталог php и переместите туда сам php -файл со скриптом. Показать решение.

87. Запишите в файлы styles.css и index.html следующее содержимое.

При использовании относительных адресов учтите новое место расположение файла со скриптом (он теперь находится в каталоге php ). Показать решение.

88. Удалите вручную содержимое корневой папки за исключением файла .htaccess . Создайте в ней (опять же, вручную) php -файл incl_file.php , скрипт которого будет выводить на страницу строку ‘Я была вставлена скриптом PHP!’ . Создайте индексный файл и подключите файл incl_file.php в тело документа. Для этого используйте оператор include_once . Показать решение.

§2.3. Работа с формами

89. Создайте форму, состав и внешний вид полей которой показан на скриншоте. Скрипт, который будет обрабатывать данные формы на сервере, должен выводить либо сообщения с данными формы либо просить заполнить все поля формы (см. скриншот задачи). Для проверки заполнения полей имени и фамилии используйте условный оператор if и функцию mb_strlen() . Не забывайте, что после скачивания файла содержимое папки нужно разместить в корневой папке test нашего учебного сайта на локальном сервере (иначе скрипт работать не будет). Показать решение.

Условие задачи №89

90. Создайте форму, состав и внешний вид полей которой показан на скриншоте. Скрипт, который будет обрабатывать данные формы на сервере, должен проверять заполнение полей имени и фамилии и в случае ошибки выводить предупреждение и прерывать скрипт. Что касается аватарки, то скрипт должен либо вывести аватарку после имени и фамилии, либо сообщить о незагруженной аватарке (см. скриншот задачи). Для получения имени, размера и временной папки для хранения загруженных файлов используйте суперглобальный массив $_FILES . Для перемещения загруженной аватарки в целевую папку используйте функцию move_uploaded_file() (в качестве целевой создайте папку avatars ). Чтобы правильно указать путь к вставляемой на страницу аватарке, не забудьте начать его с http://localhost/test/ . Показать решение.

Условие задачи №90

91. Хорошо изучите пример в учебнике, в котором используется форма, ссылающаяся сама на себя. Создайте в корневой папке test страницу с такой формой, добавив в нее кнопку ‘Сбросить’ . Что касается php -скрипта, то его нужно усложнить. Скрипт должен делать проверку заполнения полей имени и фамилии и в случае ошибки прерывать дальнейшее выполнение скрипта и выводить сообщение. Также скрипт должен проверять, был ли сделан выбор предпочтения и в зависимости от этого делать соответствующий вывод (см. скриншот). Показать решение.

Ключевые аспекты веб-разработки на PHP

Этот обзорный курс затрагивает основные аспекты современной веб-разработки в экосистеме PHP и позволяет понять контекст перед тем, как приступать к более глубокому изучению в следующих курсах професии. Мы рассмотрим понятия, с которыми сталкивается на практике любой веб-разработчик: MVC, HTTP, ORM, фреймворки, шаблонизация, тесты и многое другое. Цель курса — не научить всем этим пользоваться, а дать общее представление и задать вектор дальнейшего обучения. К каждому уроку прилагается список тем и терминов, которые нужно изучить для полного понимания описанной темы. Многие из них изучаются в последующих курсах.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL