Полиморфизъм с PHP

Какво е полиморфизъм?

Общото определение е следното: Възможността на даден обект да съществува в различни форми.

В частност при програмирането термина е следния: Полиморфизмът е шаблон в обектно ориентираното програмиране, при който класовете имат различна функционалност, но споделят един и същи интерфейс.


<?php interface Shape { public function calcArea(); } class Circle implements Shape { private $radius; public function __construct($radius) { $this->radius = $radius;
    }

    public function calcArea()
    {
        return $this->radius * $this->radius * pi();
    }
}

class Rectangle implements Shape
{
    private $width;
    private $height;

    public function __construct($width, $height)
    {
        $this->width  = $width;
        $this->height = $height;
    }

    public function calcArea()
    {
        return $this->width * $this->height;
    }
}

$circ = new Circle(2);
$rect = new Rectangle(3,4);

echo $circ->calcArea();
echo '
';
echo $rect->calcArea();

// 12.566370614359
// 12

От примера правим следният извод: Независимо, че смятаме две различни площи на два различни обекта (кръг и правоъгълник), то наследяването на интерфейса не пречи на резултата.

PHP Questions about OOP and Software Development principles

In this post, I’ll try to answer questions given by a company for the title “PHP Web Developer”. The questions are all about our field of interest, like SQL and PHP but I’ll try to explain only the PHP with the OOP (Object oriented programming) ones.

Take note here, that these questions has relative brief description, and the idea is to give as much as you can in like 20 or few lines. For everything else, there is Google 😉

Read More »