phpbar.de logo

Mailinglisten-Archive

[php] Methode lieber statisch oder nicht

[php] Methode lieber statisch oder nicht

Steffen Kother steffen.kother at gmx.net
Don Sep 13 15:35:33 CEST 2007


Hall Yannik,

Yannik Hampe wrote:
> 
> Ja... was soll ich dazu sagen mhh...
> Sagen wir mal vorsichtig: Ich glaube ausser in php hast du noch nicht
> "richtig" OOP programmiert.

Recht du hast. PHP ist die einzige Skriptsprache mit der ich mich
richtig befasse. Turbo Pascal, Delphi, C usw. konnten mich nie wirklich
richtig fesseln. Weder in der Schule, noch in der Ausbildung zum
Informatikkaufmann.

> Eine static Methode ist eine normale Funktion mit
Klassenzugehörigkeit.
> Sie hat kein $this. Mit anderen Worten: Dein if (empty(this)) ist
IMMER true.

Das leuchtet mir ein, zumal ich auch eine/zwei "echte" statische
Methoden in der Basisklasse habe.

> Damit bleibst du in einer Endlosrekursion stecken (Obwohl ich
> das jetzt nicht getested habe udn du nur schreibst, das es im
> Vergleich lange dauert aber schon funktionier...?).

Habs gerade getan. "static" rein, für das Nicht-Vorhandensein eine
Ausgabezeile und ab ging die Luzi. Ergebnis war eine "ellenlange" Seite
im Browser, die mir kundtat, dass kein $this da ist... Verstehe bloß,
warum es dann doch ging...

> 
> Wenn du sowas static machen willst, was durchaus sinnvoll ist, dann
> solltest du das so machen:
>
> class bla
> {
>    private static $connection;
>    private static getConnection()
>    {
>      if (self::$connection ===null) self::$connection
>      =mysql_connect(..); return self::$connection;
>    }
>    public static query(..)
>    {
>      $c =self::getConnection();
>      mysql_query(.., $c);
>    }
> }

Danke fürs Beispiel, werde es mal austesten.

> [Multithreading]

Jetzt noch nicht und später nicht gleich *g*

> Yannik
-- 
Mit freundlichen Gruessen / Kind regards

Steffen Kother


php::bar PHP Wiki   -   Listenarchive