Zum Inhalt springen

Verstehen der objektorientierten Programmierung (OOP) in PHP

Die objektorientierte Programmierung (OOP) ist ein Programmierparadigma, das auf dem Konzept von „Objekten“ basiert, die Daten und Code enthalten können, der mit diesen Daten arbeitet. OOP ermöglicht es Entwicklern, komplexe und dynamische Webanwendungen mit wiederverwendbarem und modularem Code zu erstellen. In PHP ist OOP ein wesentlicher Bestandteil der Sprache und wird von Entwicklern häufig genutzt, um skalierbare und wartbare Anwendungen zu entwickeln.

Was sind Klassen und Objekte in der PHP-OOP?

Klassen sind Blaupausen-Definitionen zur Erstellung von Objekten in PHP. Klassen können Eigenschaften (Variablen) und Methoden (Funktionen) enthalten. Objekte sind Instanzen von Klassen, die mit dem Schlüsselwort new erstellt werden. Die Eigenschaften eines Objekts speichern dessen Daten, und die Methoden arbeiten mit diesen Daten. Klassen und Objekte sind die Grundbausteine der OOP in PHP.

Definieren von Klassen in PHP

Klassen in PHP werden mit dem Schlüsselwort class definiert, gefolgt vom Namen der Klasse. Die Eigenschaften und Methoden einer Klasse werden innerhalb der Klassen-Definition, also geschweifte Klammern ({}), definiert. Hier ist ein Beispiel für eine Klassen-Definition in PHP:

Beispiel für eine Klassen-Definition in PHP

php
class User {
    public $username;
    public $email;
    public function __construct($username, $email) {
        $this->username = $username;
        $this->email = $email;
    }
    public function getUsername() {
        return $this->username;
    }
    public function getEmail() {
        return $this->email;
    }
}

In diesem Beispiel hat die Klasse User zwei Eigenschaften, $username und $email, sowie zwei Methoden, getUsername() und getEmail(). Die Methode __construct ist eine spezielle Methode in PHP, die aufgerufen wird, wenn ein Objekt aus einer Klasse erstellt wird.

Erstellen von Objekten aus Klassen

Um ein Objekt aus einer Klasse zu erstellen, verwenden Sie das Schlüsselwort new, gefolgt vom Namen der Klasse. Hier ist ein Beispiel, wie Sie ein Objekt aus der Klasse User erstellen:

PHP erstellt ein Objekt aus einer Klasse unter Verwendung des new-Schlüsselworts

php
$user = new User("John Doe", "[email protected]");

Dies erstellt ein neues User-Objekt und speichert es in der Variable $user. Sie können auf die Eigenschaften und Methoden des Objekts über den Pfeiloperator (->) zugreifen. Hier ist ein Beispiel, wie Sie auf die Eigenschaften und Methoden des $user-Objekts zugreifen:

PHP greift über den Pfeiloperator auf die Eigenschaften und Methoden des Objekts zu

php
echo $user->username; // Outputs: "John Doe"
echo $user->email; // Outputs: "[email protected]"
echo $user->getUsername(); // Outputs: "John Doe"
echo $user->getEmail(); // Outputs: "[email protected]"

Vererbung in der PHP-OOP

Vererbung ist eine Funktion der OOP, die es Klassen ermöglicht, Eigenschaften und Methoden von übergeordneten Klassen zu erben. Dies ermöglicht es Entwicklern, neue Klassen zu erstellen, die auf bestehenden Klassen basieren, ohne den gesamten Code erneut schreiben zu müssen. In PHP wird Vererbung mit dem Schlüsselwort extends definiert. Hier ist ein Beispiel für Vererbung in PHP:

PHP-Beispiel: Vererbung ist eine Funktion der OOP, die es Klassen ermöglicht

php
class Admin extends User {
    public $permissions;
    public function __construct($username, $email, $permissions) {
        parent::__construct($username, $email);
        $this->permissions = $permissions;
    }
    public function getPermissions() {
       return $this->permissions;
   }
}

In diesem Beispiel erweitert die Klasse Admin die Klasse User und erbt deren Eigenschaften und Methoden. Die Klasse Admin verfügt außerdem über eine eigene Eigenschaft, $permissions, und eine Methode, getPermissions(). Das Schlüsselwort parent:: wird verwendet, um die \_\_construct-Methode der übergeordneten Klasse aufzurufen, wodurch die Klasse Admin die Logik der Klasse User wiederverwenden kann.

Polymorphie in der PHP-OOP

Polymorphie ist eine Funktion der OOP, die es ermöglicht, Objekte verschiedener Klassen als Objekte derselben Klasse zu behandeln. Dies ermöglicht es Entwicklern, generischen Code zu schreiben, der mit Objekten verschiedener Klassen arbeiten kann, solange sie über dieselben Methoden verfügen. In PHP wird Polymorphie erreicht, indem gemeinsame Methoden in übergeordneten Klassen definiert und in untergeordneten Klassen implementiert werden. Hier ist ein Beispiel für Polymorphie in PHP:

Beispiel für Polymorphie in PHP

php
<?php

class User
{
    public $username;
    public $email;

    public function __construct($username, $email)
    {
        $this->username = $username;
        $this->email = $email;
    }
    public function getUsername()
    {
        return $this->username;
    }
    public function getEmail()
    {
        return $this->email;
    }

    public function showInfo()
    {
        echo "Username: " . $this->username . "\n";
        echo "Email: " . $this->email . "\n";
    }
}

class Admin extends User
{
    public $permissions;
    public function __construct($username, $email, $permissions)
    {
        parent::__construct($username, $email);
        $this->permissions = $permissions;
    }
    public function getPermissions()
    {
        return $this->permissions;
    }

    public function showInfo()
    {
        parent::showInfo();
        echo "Permissions: " . $this->permissions . "\n";
    }
}

$user = new User("John Doe", "[email protected]");
$admin = new Admin("Jane Doe", "[email protected]", ["read", "write", "delete"]);

$users = [$user, $admin];

foreach ($users as $user) {
    $user->showInfo();
}

In diesem Beispiel haben sowohl die Klasse User als auch die Klasse Admin eine showInfo()-Methode. Wenn die Methode showInfo() für ein Objekt aufgerufen wird, wird die entsprechende Implementierung der Methode basierend auf dem Typ des Objekts aufgerufen. Dies ermöglicht es der foreach-Schleife, die Objekte $user und $admin als Objekte desselben Typs zu behandeln, obwohl sie Instanzen verschiedener Klassen sind.

Fazit

Die objektorientierte Programmierung (OOP) ist ein leistungsfähiges Programmierparadigma, das in PHP häufig zur Erstellung skalierbarer und wartbarer Webanwendungen eingesetzt wird. Klassen und Objekte sind die Grundbausteine der OOP in PHP, und Vererbung sowie Polymorphie sind zwei der Schlüsselfunktionen, die es Entwicklern ermöglichen, effizienten und wiederverwendbaren Code zu schreiben. Egal, ob Sie gerade erst mit PHP beginnen oder ein erfahrener Entwickler sind – das Verständnis der Grundlagen der OOP in PHP ist unerlässlich, um qualitativ hochwertige Webanwendungen zu erstellen.

Praxis

In PHP, welche Merkmale und Funktionen haben Objekte und Klassen?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.