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:
 
 
 
Magische Methoden (Interzeptormethoden): Seite 2

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



Ausgabe
Aufruf von SetzeHersteller mit 2 Parameter
Array
(
   [0] => Nokia
   [1] => Siemens
)
Aufruf von SetzePreise mit 3 Parameter
Array
(
   [0] => 99.95
   [1] => 199.99
   [2] => 50
)

Im folgenden Beispiel wird der Datentyp geprüft und anschließend an die passende Funktion übergeben!

<?php

// Datentyp prüfen via __call()
class Auswertung {

  function __call($eingabe,$inhalt) {

   if($eingabe=='pruefen') {

    if(is_integer($inhalt[0]))
        $this->ausgabe_integer($inhalt[0]);

    if(is_string($inhalt[0]))
        $this->ausgabe_string($inhalt[0]);

    if(is_array($inhalt[0]))
        $this->ausgabe_array($inhalt[0]);

   }

  }

  private function ausgabe_integer($daten) {
   echo("Der Wert " . $daten . " ist ein Integer!<br>");
  }

  private function ausgabe_string($daten) {
   echo("Der Wert " . $daten . " ist ein String!<br>");
  }

  private function ausgabe_array($daten) {
   echo("Die Werte " . implode(",", $daten) . " sind in einem Array!<br>");
  }

}

// Klassenaufruf
$test = new Auswertung();

$test->pruefen(3);
$test->pruefen("3");

$array = array(10,20,30);
$test->pruefen($array);
?>

Ausgabe
Der Wert 3 ist ein Integer!
Der Wert 3 ist ein String!
Die Werte 10,20,30 sind in einem Array!


Einsatz von __set() und __get()

Eine weitere Variante der __call()-Methode sind __set() und __get(). Mit ihnen kann man direkt beim Aufruf die Werte beeinflussen.  Die beiden Methoden sind spezielle Methoden, auf die von außerhalb der Klasse als Attribute zugegriffen werden kann, welche jedoch in der Klasse selbst als Methoden definiert vorliegen. Einer der wichtigsten Vorteile der Methoden ist, dass sie Eigenschaften erzeugen können, die von außerhalb wie Attribute erscheinen, die intern jedoch mit komplexen Abläufen arbeiten.


Funktionsweise von __set() und __get()

Wird auf Eigenschaften eines Objekts zugegriffen, die nicht explizit definiert sind, wird die __set()-Methode aufgerufen, um einen Wert zu definieren. Soll dieser Wert abgefragt werden, wird die __get()-Methode aufgerufen. Sind weder __set() noch __get() implementiert, kommt es bei einem Zugriff auf nicht definierte Eigenschaften zu Fehlern.

Eine Besonderheit stellt folgendes Verhalten der beiden Methoden dar:
  • Wenn man mit __set() eine Eigenschaft definiert und mit __get() nicht, erhält man eine »Nur-Schreib«-Eigenschaft.
  • Wenn man mit __get() eine Eigenschaft definiert und mit __set() nicht, erhält man eine »Nur-Lese«-Eigenschaft.




Magische Methoden (Interzeptormethoden) Seite 1
 




:: Premium-Partner ::

Webhosting/Serverlösungen

PSW GROUP GmbH & Co. KG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Sedo GmbH weitere Sponsoren
 


:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch 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


Umrechnung Byte/Kilobyte/Megabyte – Byte/Kibibyte/Mebibyte

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

SELFPHP Code Snippet


Grafik mit base64 kodieren und am Browser ausgeben

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