Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Neuerungen in PHP 5  Teil von  OOP und PHP 5
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Praxis – Lebewesen

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



Hier ein abschließendes Beispiel zu den OOP-Erweiterungen, damit Sie sich ein Bild davon machen können, welch schöpferischer Akt sich im Einsatz objektorientierter Programmierung verbirgt.

<?php

// Schnittstelle
// Gewährleistet die Kommunikation zwischen Klassen
interface Wachstum {
  // Zu implementierende Methode
  function altern();
}

// Abstraktion einer Klasse
abstract class Lebewesen implements Wachstum {
  // Eigenschaften schützen, sodass über ein
  // Objekt kein direkter Zugriff möglich ist!
  protected $alter = 0;
  protected $geschlecht;

  public function altern(){}

  public final function getAlter() {
    return $this->alter;
  }
}

// Klasse Mensch wird durch die Superklasse
// Lebewesen erweitert (Vererbung)
class Mensch extends Lebewesen {
  protected static $vorfahre = "Affe";
  protected $name;
  
  // Konstruktor
  public function __construct($name, $geschlecht) {
    $this->name = $name;
    $this->geschlecht = $geschlecht;
    $this->altern();
  }
  
  // Destruktor
  public function __destruct() {
    echo "<br>...und so scheidet ".$this->name." dahin";
  }
  
  // Finale Methoden
  public final function altern() {
    $this->alter++;
  }
  
  public final function getName() {
    return $this->name;
  }
  
  public function umbenennen($neuerName) {
    $this->name = $neuerName;
  }
  
  public function geburtstagFeiern() {
    $this->altern();
    echo "trööööt";
  }
  
  // Statische Methoden
  public static final function neueEvolutionstheorie($neuerVorfahre) {
    Mensch::$vorfahre = $neuerVorfahre;
  }
  
  public static final function getVorfahre() {
    return Mensch::$vorfahre;
  }
}

// Klasse Deutscher erbt von Mensch
class Deutscher extends Mensch {
  public function __construct($name, $geschlecht) {
    parent::__construct($name, $geschlecht);
  }
  
  public function umbenennen($neuerName, $geduldsfaden=false) {
    $erfolg = $this->behoerdengang($geduldsfaden);
    if ($erfolg) $this->name = $neuerName;
  }

  // Private Methode
  private function behoerdengang($geduldsfaden) {
    try {
     if (!$geduldsfaden)
      throw new Exception("Umbennenung fehlgeschlagen!");
      return true;
    } catch (Exception $prop) {
      echo $prop->getMessage()."<br>";
      return false;
    }
  }
}


// Autor erzeugen (Objekt)
$autor = new Mensch("Matthias", "m");

// Auf die Methode getName() zugreifen
echo $autor->getName()."<br>";

// Autor umbenennen
$autor->umbenennen("Matze");

// Neuen Namen ausgeben
echo "Neuer Name: ".$autor->getName()."<br>";

// Folgende Codezeile erzeugt einen Fehler
// da die Eigenschaft geschützt ist!
// echo $autor->geschlecht;

// An das Alter gelangt man mit Hilfe der
// Funktion getAlter()
echo "Alter des Autors: " . $autor->getAlter() ."<br>";

// Stammt Autor vom Mensch ab?
if ($autor instanceof Mensch) {
echo $autor->getName()." ist ein Mensch!<br>";
}

// Wer sind die Vorfahren der Menschen
echo "Der Mensch ist ein Nachfahre von ".Mensch::getVorfahre()."<br>";

// Neue Theorie
Mensch::neueEvolutionstheorie("Alien");

// Wer sind nun die Vorfahren der Menschen
echo "Der Mensch ist ein Nachfahre von ".Mensch::getVorfahre()."<br>";

// Autorin erzeugen (Objekt)
$autorin = new Deutscher("Caroline", "w");

// Die Methode behoerdengang ist über
// das Objekt nicht zu erreichen, da
// diese als private gekennzeichnet ist!
// $autorin->behoerdengang(true);

// Gibt den Ausnahmefall aus, da das
// zweite Argument false ist (throw/catch).
$autorin->umbenennen("Caro", false);

?>

Ausgabe
Matthias
Neuer Name: Matze
Alter des Autors: 1
Matze ist ein Mensch!
Der Mensch ist ein Nachfahre von Affe
Der Mensch ist ein Nachfahre von Alien
Umbennenung fehlgeschlagen!

...und so scheidet Matze dahin
...und so scheidet Caroline dahin




Anpassung von PHP 4 auf PHP 5
 




:: Premium-Partner ::

Webhosting/Serverlösungen

PSW GROUP GmbH & Co. KG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

ionCube Ltd. weitere Sponsoren
 


:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Dynamische Seitennavigation – Seite 1 von n

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Fronleichnam für ein bestimmtes Jahr ermitteln

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2024 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de