Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Neuerungen in PHP 5  Teil von  OOP und PHP 5
Letztes Update: 04.09.2007 20:49:50

Navigation

Seite Startseite
Seite Aktuelles
Seite Seite News*
Seite Seite Pressemitteilungen*
Seite SELFPHP
Seite Seite Über SELFPHP
Seite Seite Werbung
Seite Seite Kontakt
Seite Seite Unsere Banner
Seite Seite Impressum
Seite Qozido
Seite Seite Diving Edition
Seite Seite Snorkeling Edition
Seite SELFPHP Dokumentation
Seite Seite PHP-Skripte
Seite Seite PHP Befehlsreferenz
Seite Seite PHP 5 Praxisbuch
Seite Seite PHP Code Snippets
Seite Seite SELFPHP in Buchform
Seite Anbieterverzeichnis
Seite Seite Globale Branchen
Seite Seite Webhosting/Server
Seite Services
Seite Seite Forum*
Seite Seite RSS-Feeds*
Seite Seite Downloads*
Seite Seite Gratis-Video-Lektionen*
Seite Seite SELFPHP auf Heft-CD*
Seite Seite Newsletter*
Seite Internet Security
 sponsored by  
Seite Stellenangebote*
Sedo - Bei uns wird PHP großgeschrieben
Seite Premium-Partner   
Webhosting/Serverlösungen
Seite Produktempfehlung   
Seite Seite SteadyBackup

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  
 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 100.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 




 

Statische Eigenschaften und Methoden




Statische Eigenschaften und Methoden werden direkt von der Klasse aus angesprochen, und nicht über das Objekt. Damit teilen sich sämtliche Objekte einer Klasse diese Mitglieder, ganz gleich, ob es sich dabei um Eigenschaften oder Methoden handelt. Anstatt ein Objekt der Klasse zu erzeugen, um dann von diesem aus auf die Attribute und Methoden zugreifen zu können, kann immer direkt auf die Eigenschaften und Methoden der Klasse zugegriffen werden. Sollten Sie eine statische Eigenschaft oder Methode erzeugen wollen, verwenden Sie beim Deklarieren das Schlüsselwort static.

Einsatzfälle für statische Variablen und Methoden:
  • Nutzen Sie statische Mitglieder für Aufgaben, die keinen Bezug zu den spezifischen Daten eines Objekts haben, beispielsweise Umrechnungen.
  • Statische Mitglieder ermöglichen die Implementierung von Verweiszählern, wie beispielsweise Eigenschaften, die allen Objekten gleich sind.
  • Statische Mitglieder ermöglichen den direkten Aufruf ohne vorherige Instanziierung. Dies ist sinnvoll, wenn man ohnehin nur ein Objekt benötigt.


<?php

class Klasse {
   static $static_var = 5;
   public $mein_prop = 'Hallo';
  
   public static function ausgabe() {
       return "Ein Text...";
   }

}

// Abfrage der statischen Variablen
echo Klasse::$static_var;

// Abfrage der statischen Funktion
echo Klasse::ausgabe();

$objekt = new Klasse;

// Abfrage der public-Variablen durch das Objekt
echo $objekt->mein_prop;

?>

Beispiel – Anzahl der erzeugten Objekte bzw. Entwickler

<?php
class Entwickler
{
   static $zaehler;

   public function __construct()
   {
        Entwickler::$zaehler++;
   }

   public function GetEntwicklerAnzahl()
   {
        return Entwickler::$zaehler;
   }
}
$entwickler1 = new Entwickler();
$entwickler1 = new Entwickler();
$entwickler1 = new Entwickler();

echo "Es existieren " . $entwickler1->GetEntwicklerAnzahl() . " Entwickler.";
?>

Ausgabe
Es existieren 3 Entwickler.

Um auf einfache Weise eine Klasse zu schaffen, die in der Lage ist, die Anzahl ihrer erzeugten Objekte zu erfassen, ist das Schlüsselwort static Gold wert. Durch Einsatz von static ist die Variable $counter der Klasse Entwickler in den Klassenkontext überführt worden. Diese Variable existiert für sämtliche Objekte lediglich einmal. Sobald ein neues Objekt erzeugt wird, wird der Wert im Konstruktor um 1 erhöht. Um dabei die Variablen $counter verarbeiten zu können, erfolgt der Zugriff über einen Klassenverweis, die Pseudovariable $this kann nicht verwendet werden. Dabei wird der Zugriff durch den statischen Verweisoperator :: und den vollständigen Namen der Variablen, inklusive $-Zeichen, ermöglicht. Dies gilt sowohl für Zugriffe innerhalb der Klasse, wie im vorliegenden Beispiel, als auch für externe.

Hinweis: Statische Variablen und Methoden können darüber hinaus als public, private oder protected gekennzeichnet werden.



Beispiel – statische Methoden

<?php
class Datenbank
{
  // Variablendeklaration
  protected $db;
  
  // Statische Methode
  public static function verbindeDB($host, $user, $password)
  {
    @$db = new mysqli($host, $user, $password);
    
    if (mysqli_connect_errno()) {
        printf("Verbindungsfehler: %s\n", mysqli_connect_error());
        exit();
    }    
    return $db;    
  }
  public function oeffneDB()
  {
    $this->db = $this->verbindeDB("localhost", "root", "");
    return $this->db;
  }
}
// Methodenaufruf ohne Objekterzeugung
// Lediglich bei static-Methoden möglich!
$privatzugang_a = Datenbank::verbindeDB("localhost", "root", "");
echo $privatzugang_a;

// Aus einem Objekt heraus
$zugang = new Datenbank();
$privatzugang_b = $zugang->oeffneDB();
echo $privatzugang_b;
?>



 




 sponsored by

Sedo - Bei uns wird PHP großgeschrieben


VERIO - An NTT Communications Company


HighText iBusiness


Webspace-Verkauf.de


video2brain




 Premium-Partner
 Webhosting/Serverlösungen

BPI-Systeme


Premium-Partner Pixel X


Premium-Partner First Colo


Premium-Partner dogado Internet




Qozido


© 2001-2008 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt