Portierung PHP5 Klassen in PHP4

Radhad

Erfahrenes Mitglied
Hallo zusammen,

ich habe die Aufgabe, PHP5 Klassen in PHP4 umzuschreiben, weil die aktuelle Seite noch auf PHP4 läuft und ein Teil aber noch auf der alten Seite laufen muss.

Allerdings habe ich ein Problem bei dem Aufruf einer Methode der Mutterklasse.
Ein einfaches, kurzes Beispiel: Klasse B erbt von Klasse A. Von Klasse B soll eine Methode aufgerufen werden:

PHP:
class A
{
  ...
  
  function Eins($var1, $var2)
  {
    ...
  }
}

PHP:
class B extend A
{
  ...

  funtion Methode()
  {
    $this->Eins($foo, $bar);
  }
}

Jetzt bekomme ich folgende Fehlermeldung:
Code:
Fatal error: Call to a member function on a non-object
Allerdings verstehe ich nicht, warum. Ersetze ich den Methodenaufruf duch
PHP:
A::Eins($foo, $bar);
erhalte ich dieselbe Fehlermeldung. Wie wäre das denn dann Richtig?



Gruß Radhad
 
Hi Radhad,

hier nochmal ungefähr dein Beispiel, so wie es funktioniert.

PHP:
<?php
class A {
  function printClassA() {
    print( "Im from class A" );
  }
}

class B extends A {
  function printClassB() {
    print( "Im from class B" );
  }
  
  function printClassAoverB() {
    parent::printClassA();
  }
}

$b = new B;
$b->printClassAoverB();
?>

Ich hab eigentlich nichts geändert, als den Aufruf der Funktion von der Übergeordneten Klasse. Anstatt this habe ich parent eingesetzt.

Gruß Manuel
 
Danke, hab meinen eigenen Fehler gefunden, ich hab vergessen den Konstruktor von __construct() auf Klassenname() zu ändern ;-)
 
Zurück