Statische Methoden in PHP

Statische Mehtoden sind ein weit verbreitetes Konstrukt objektorientierter Programmiersprachen, das auch von PHP unterstützt wird.

Sehen Sie hier an einem einfachen Beispiel, wie man in PHP Klassen mit statischen Methoden erstellt und diese aufruft, ohne die Klassen davor explizit zu instanziieren.

In diesem Artikel geht es primär um die Syntax. Grundkentnisse in der Objektorientierung (z.B. in Java oder C++) sind Voraussetzung.

Voraussetzung für die hier gezeigten PHP-Scripte: PHP 5

Schlüsselwort 'static'

Um statische Methoden oder Variablen zu Kennzeichnen wird das Schlüsselwort static in PHP verwendet.

Werden zum Beispiel in einem größeren PHP Projekt immer wieder die selben Nachrichten zur Ausgabe benötigt, so kann man hierfür eine Klasse mit statischen Methoden verwenden:


PHP-Script

<?php
class MessageGenerator{
    static function 
getErrorMessage() {
        return 
"Example Error Message!";
    }
    static function 
getLoginMessage() {
        return 
"Welcome, you logged in to Example-Site";
    }
    static function 
getLogoutMessage() {
        return 
"Good Bye! See you soon!";
    }
    static function 
getCopyright() {
        return 
"&copy; 2012 Computer-Masters.de";
    }
}
?>
1

Der Aufruf einer statischen Methode sieht dann wiefolgt aus (man beachte, die Klasse wurde davor nicht instanziiert):


PHP-Script

<?php
##Die Klasse MessageGenerator im aktuellen Kontext bekannt machen
require_once("MessageGenerator.php"); 

## ... beliebiger Code

if($benutzer->istAngemeldet()) {
    
MessageGenerator::getLoginMessage();
} else {
    
MessageGenerator::getLogoutMessage();
}

##...
?>
1

Weiterführendes

Lesen Sie auch folgende Interessante Artikel zum Thema Objektorientierung in PHP:

 

Sie haben noch Fragen?

Nutzen Sie einfach die Kommentarfunktion, die Ihnen auch als unregistrierter Leser zur Verfügung steht!

Gerne wird Ihnen bei Fragen zum Artikel weiter geholfen! Wenn Sie vom Artikel abweichende Fragen haben, können Sie gerne das Forum verwenden!

 

Kommentare

Anzeige: