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:
 
 
 
Typen-Hinweise (class type hints): Seite 1

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



PHP ist eine schwach typisierte Sprache und verfügt über keine strikte Typisierung. PHP legt intern fest, welchen Datentyp eine Variable annimmt oder eine Funktion zurückgibt. Es gibt zwar die bereits behandelten Umwandlungsfunktionen, letztlich besteht aber kein Typzwang, wie dies in Programmiersprachen üblich ist. Anstatt auf eine strikte Typisierung kann jedoch auf einen klassenbasierten Typen-Hinweise (engl. type hints) zugegriffen werden. Dieser Typen-Hinweis wird zur Laufzeit ausgewertet. Damit kann festgelegt werden, dass an Methoden nur Objekte einer bestimmten Klasse übergeben werden können.


Funktionsweise von Typen-Hinweisen

Die Forderungen an den Typ eines Parameters können durch die Angabe eines Klassen- oder Schnittstellennamens in der Signatur der Methode erfolgen. Die Typenprüfung erfolgt jedoch nicht zum Zeitpunkt der Kompilierung, sondern erst zur Laufzeit. Diese sogenannten Class Type Hints ersparen dem Entwickler einiges an Schreibarbeit, wie die beiden folgenden Beispiele zeigen.

Beispiel – Class Type Hints

<?php

interface Reinlassen
{
  function Zutrittgestatten();
}

class Vipzone implements Reinlassen
{
  function Zutrittgestatten()
  {
    echo "VIP Bereich.\n";
  }
}

class Normalzone implements Reinlassen
{
  function Zutrittgestatten()
  {
    echo "Öffentlicher Bereich.\n";
  }
}

class Privatperson
{
  function Betreten(Normalzone $ticket)
  {
    echo $ticket->Zutrittgestatten();
  }
}

class Vipperson
{
  function Betreten(Reinlassen $ticket)
  {
    echo $ticket->Zutrittgestatten();
  }
}

$vip = new Vipperson();
echo "VIP-Person Zutritt zu:\n";
$vip->Betreten(new Normalzone);
$vip->Betreten(new Vipzone);

$normalperson = new Privatperson();
echo "Normal-Person Zutritt:\n";
$normalperson->Betreten(new Normalzone);
$normalperson->Betreten(new Vipzone);

?>

Ausgabe
VIP-Person Zutritt zu:
Öffentlicher Bereich.
VIP Bereich.
Normal-Person Zutritt:
Öffentlicher Bereich.

Fatal error: Argument 1 passed to Privatperson::Betreten() must be an instance of Normalzone

Wie man an diesem Beispiel sieht, kann das Objekt $normalperson nur den öffentlichen Bereich betreten, während es beim Objekt $vip egal ist, welcher Bereich betreten wird. Die Angabe von function Betreten(Normalzone $ticket) entspricht:

function Betreten($ticket)
{  
  if (!($ticket instanceof Normalzone))
  {
    die("Argument 1 must be an instanc of vipzone");
  }
  echo $ticket->Zutrittgestatten();
}




Magische Methoden (Interzeptormethoden)
 




:: Premium-Partner ::

Webhosting/Serverlösungen

Pixel X weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Sedo GmbH weitere Sponsoren
 


:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 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


Rijndael – Komplettes Beispielprojekt Verschlüsselung

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

SELFPHP Code Snippet


Speicherverbrauch eines PHP-Skripts ermitteln

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