Tom: OOP, Name der Hauptklasse von PHP

Hello,

wie lautet eigentlich der Name der obersten Objektklasse in PHP?

Angenommen, ich wollte in meiner eigenen Klasse die Funktion strtoupper() überschreiben mit einer eigenen, aber die alte Funktion darin benutzen, wie kann ich die ansprechen?

function strtoupper($text)
{
  $text = ?????::strtoupper($text);
  ....
  ....
  return $text;
}

Was muss ich für ????? einsetzen?

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  1. Hallo Tom,

    wie lautet eigentlich der Name der obersten Objektklasse in PHP?

    Gibt es nicht.

    Angenommen, ich wollte in meiner eigenen Klasse die Funktion strtoupper() überschreiben mit einer eigenen, aber die alte Funktion darin benutzen, wie kann ich die ansprechen?

    function strtoupper($text)
    {
      $text = ?????::strtoupper($text);

    $text = strtoupper ($text);

    Wenn Du eine Methode einer Klasse ausführen willst, dann musst Du immer ein Objekt dieser Klasse zur Verfügung haben ($obj->funktion()) oder diese Methode statisch aufrufen (klasse::funktion()) - selbst wenn (!) Du Dich innerhalb derselben Klasse befindest.

    Bsp:

    function a () {
      echo 'A';
    }

    class b {
      function c () {
        a();
      }

    function a () {
        echo 'B';
      }
    }

    b::c();

    Ergibt: A

    Dagegen:

    function a () {
      echo 'A';
    }

    class b {
      function c () {
        b::a();
      }

    function a () {
        echo 'B';
      }
    }

    b::c();

    Ergibt: B

    Viele Grüße,
    Christian

    1. Hello Christian,

      wie lautet eigentlich der Name der obersten Objektklasse in PHP?

      Gibt es nicht.

      Danke für die Erläuterung.

      Na, dann hab ich es doch einfach mal gewagt:

      class Text
      {

      function strtoupper($text)
        {
          $text= "<span style="color:".$this->textfarbe.";".
                               "background-color:".$this->hintergrund.";".
                               "font-weight:bold;">".
                                strtoupper($text)."</span>";
          return $text;
        }

      }

      Und so funktioniert es dann. Man muss also für den Aufruf einer  Stammfunktion in einer Klasse einfach keinen Objektzeiger angeben, dann wird die ursprüngliche Funktion genommen. Ist zwar irgendwie nicht ganz sauber, aber ich hoffe, das funktioniert dann immer.

      $c1 = new Text();
      echo $c1->strtoupper("hallo");

      liefert dann also das bunte "HALLO".
      Nur als Beispiel natürlich. Sonst ist das nicht so sinnvoll *gg*

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen