Statische Klassen in PHP?

Prophet05

Erfahrenes Mitglied
Kann ich in PHP Statische Klassen erstellen? Also Klassen auf deren Funktionen ich zugreifen kann ohne ein Exemplar zu Instanzieren?

Mfg Prophet05
 
Ich denk mal du meinst das:
PHP:
class Klassenname {
  $eineZahl = 2;
  function multipliziere($zahl) {
    return $zahl * $this->eineZahl;
  }
}

$meineVerbindungZurKlasse = new Klassenname();

echo $meineVerbindungZurKlasse->multipliziere(5);

Das Beispiel gibt aus:

HTML:
10
 
Wenn er das meinte hätte er nicht geschrieben ohne die Klasse zu instanzieren.
Er wollte wissen ob es so geht:

PHP:
echo multipliziere(5);

Denk ich!
Und ich sage das geht nicht ohne die Klasse zu instanzieren!
 
Bevor Du eine statische Klasse implementierst, solltest Du IMHO eher auf ein Singleton zurückgreifen. Dazu gibt es ein Tutorial unter den PHP-Tutorials.
Alles, was in diese Richtung geht, wird meines Wissens nur mit PHP5 sinnvoll zu realisieren sein.
Du kannst auch auf static für Variablen und Funktionen innerhalb der Klasse zurückgreifen.

In PHP4 kannst Du jede Klasse statisch verwenden, indem Du mit der Syntax ClassName::functionName() auf die Funktionen zugreifst. Ich bin mir nicht sicher, ob dies auch noch in PHP5 möglich ist, wenn eine Methode nicht als statisch deklariert ist.

Gruß hpvw
 
Ich lerne auch gerade Java aber mit Singletons hatte ich nochts am hut.

Ginge denn das?
PHP:
class Tools
{
public static function oneTool()
{ return 'Tool benutzt'; }
}

echo Tools.oneTool();

Ausgabe: Tool benutzt
 
Wenn ich die oben verlinkte Doku richtig interpretiere, kannst Du static nicht auf die Klasse anwenden und musst Du die Sichtbarbeit einer Methode vor der Definition von static definieren. Außerdem sieht die Syntax, um auf die Methode zuzugreifen, anders aus als bei Java, aber das Beispiel habe ich ja schon geschrieben.
Wenn ich nichts überlesen habe, wird es nicht funktionieren, aber warum probierst Du es nicht aus?

Gruß hpvw
 
Zurück