Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Gemeinsamer Konstruktor unter PHP4 und PHP5 (https://www.delphipraxis.net/133839-%5Bphp%5D-gemeinsamer-konstruktor-unter-php4-und-php5.html)

TurboMartin 10. Mai 2009 13:25


[PHP] Gemeinsamer Konstruktor unter PHP4 und PHP5
 
Hallo DPler :hi: ,

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? :gruebel:

omata 10. Mai 2009 13:28

Re: [PHP] Gemeinsamer Konstruktor unter PHP4 und PHP5
 
Code:
//PHP5
    function __construct() {
        $this->_constructor();
        echo 'PHP5-constructor';
    }
Außerdem ist unter PHP4 folgendes nicht verfügbar...
Code:
protected
public
private
und ein Objekt muss dort anders zugewiesen werden...
Code:
echo 'creating object --  ';
$myct =& new ctest();
echo ' --  object created';

TurboMartin 10. Mai 2009 13:31

Re: [PHP] Gemeinsamer Konstruktor unter PHP4 und PHP5
 
Zitat:

Zitat von omata
Code:
//PHP5
    function __construct() {
        $this->_constructor();
        echo 'PHP5-constructor';
    }

:oops: Danke... :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz