Einzelnen Beitrag anzeigen

TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#1

[PHP] Gemeinsamer Konstruktor unter PHP4 und PHP5

  Alt 10. Mai 2009, 13:25
Hallo DPler ,

ich sitze gerade an einem etwas merkwürdigem Problem, welches mir nicht erlaubt einen gemeinsamen Konstruktor für PHP4 und PHP5 zu bauen.

Unter PHP5 wurde der Konstruktor in der Methode __construct() untergebracht, während er bei PHP4 noch in einer Funktion mit dem Klassennamen lag. Somit hatte ich die überlegung, um nicht Kompatibilitätsprobleme zu bekommen, in dem PHP5-Konstruktor den PHP4-Konstruktor aufzurufen, und somit Schreibarbeit/Größe der Datei zu minimieren. Dabei gibt es aber nun das Problem, dass ich einen 500-Fehler zurückbekomme.

Somit kam ich auf folgendes:
Code:
<?php
echo 'teststart --  ';

class ctest {

    protected $querytext = '';

    public function getquerytext() {
        return $querytext;
    }

    //PHP5
    function __construct() {
        _constructor();
        echo 'PHP5-constructor';
    }

    //PHP4
    function ctest() {
        _constructor();
        echo 'PHP4-constructor';
    }

    //Globaler Konstruktor
    private function _constructor() {
        echo 'ctest created';
    }
}

echo 'creating object --  ';
$myct = new ctest();
echo ' --  object created';

?>
Allerdings bekomme ich als Ausgabe nur teststart -- creating object -- zurück. Also wird anscheinend kein Konstruktor aufgerufen. Kommentiere ich nun meinen eigenen Konstruktor aus, funktioniert alles.

Aber wie kriege ich es hin, Kompatibilitätsprobleme zu vermeiden, aber auch möglichst alles kompakt zu halten?
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat