PHP ООП ЗАДАЧИ
ООП - один из ключевых принципов программирования на PHP. Объектно-ориентированная парадигма помогает создавать более читаемый, удобный и масштабируемый код.
В этом разделе мы рассмотрим несколько задач, связанных с ООП на PHP. Вот некоторые из них:
1. Создание класса и объекта: Одной из основных задач ООП является создание классов и объектов. Класс представляет определенный тип данных, а объект - экземпляр этого класса. Например, можно создать класс "Человек", который будет содержать свойства, такие как "Имя", "Фамилия" и "Возраст", а затем создать объект "Человек", содержащий конкретную информацию о человеке.
class Person {
public $name;
public $surname;
public $age;
}
$person = new Person();
$person->name = "John";
$person->surname = "Doe";
$person->age = 30;
2. Наследование: Еще одной важной задачей ООП является наследование. Наследование позволяет определять новые классы на основе существующих, наследуя их свойства и методы. Например, можно создать класс "Студент", который будет наследовать свойства и методы из класса "Человек".
class Student extends Person {
public $student_id;
}
$student = new Student();
$student->name = "Mary";
$student->surname = "Smith";
$student->age = 20;
$student->student_id = 1001;
3. Инкапсуляция: Инкапсуляция - это механизм, который позволяет скрыть данные и методы класса от других объектов, обеспечивая их защиту и контроль доступа. Например, можно создать класс "Банковский счет", в котором данные о счете будут скрыты от других объектов, а доступ к ним будет осуществляться только через определенные методы класса.
class BankAccount {
private $account_number;
private $balance;
public function get_balance() {
return $this->balance;
}
public function deposit($amount) {
$this->balance += $amount;
}
public function withdraw($amount) {
if ($this->balance >= $amount) {
$this->balance -= $amount;
}
}
}
$account = new BankAccount();
$account->deposit(1000);
$account->withdraw(200);
echo $account->get_balance();
4. Полиморфизм: Полиморфизм - это возможность использования разных классов или объектов с одинаковым интерфейсом. Например, если у нас есть классы "Круг" и "Прямоугольник", с одинаковым методом "get_area()", который возвращает площадь фигуры, мы можем использовать эти классы вместе в функции, которая ожидает объекты с методом "get_area()".
interface Shape {
public function get_area();
}
class Circle implements Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
public function get_area() {
return pi() * $this->radius * $this->radius;
}
}
class Rectangle implements Shape {
private $width;
private $height;
public function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
public function get_area() {
return $this->width * $this->height;
}
}
function print_area(Shape $shape) {
echo $shape->get_area();
}
$circle = new Circle(5);
$rectangle = new Rectangle(10, 5);
print_area($circle);
print_area($rectangle);
5. Абстрактные классы и интерфейсы: Абстрактные классы и интерфейсы позволяют определять общий интерфейс для группы связанных классов. Абстрактный класс - это класс, который не может быть создан напрямую, а только на основе его производных классов. Интерфейс - это набор методов, которые должны быть реализованы классом.
interface Logger {
public function log($message);
}
class FileLogger implements Logger {
public function log($message) {
file_put_contents('log.txt', $message, FILE_APPEND);
}
}
class DatabaseLogger implements Logger {
public function log($message) {
$pdo = new PDO('mysql:host=localhost;dbname=logs', 'username', 'password');
$stmt = $pdo->prepare("INSERT INTO logs (message) VALUES (?)");
$stmt->execute([$message]);
}
}
11: First exercise in OOP PHP - OOP PHP Exercise - Object Oriented PHP Tutorial - PHP Tutorial
Руководство по ООП на PHP
Основы ООП в PHP. Решение практических задач. Трепачёв Д.П. ruphp.com
ООП на PHP за 2 часа. Курс по PHP. Объектно ориентированное программирование на PHP
Learn Object Oriented PHP - 2 hour Object Oriented Programming Lesson For Beginners - PHP OOP
14: Abstract Classes in OOP PHP - Abstract Explained - Object Oriented PHP Tutorial - PHP Tutorial
Орел и решка на PHP. Практика ООП для начинающих
Задача на PHP ООП калькулятор площади круга
Открытое собеседование PHP Point #1 / Валентин Удальцов vs Патрик Фельдеш
1: Introduction To OOP PHP - Object Oriented PHP Tutorial For Beginners - PHP Tutorial - mmtuts