![]() |
[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:
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.
<?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'; ?> Aber wie kriege ich es hin, Kompatibilitätsprobleme zu vermeiden, aber auch möglichst alles kompakt zu halten? :gruebel: |
Re: [PHP] Gemeinsamer Konstruktor unter PHP4 und PHP5
Code:
Außerdem ist unter PHP4 folgendes nicht verfügbar...
//PHP5
function __construct() { $this->_constructor(); echo 'PHP5-constructor'; }
Code:
und ein Objekt muss dort anders zugewiesen werden...
protected
public private
Code:
echo 'creating object -- ';
$myct =& new ctest(); echo ' -- object created'; |
Re: [PHP] Gemeinsamer Konstruktor unter PHP4 und PHP5
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz