Mailinglisten-Archive |
"Gretz, Georg" wrote: > > Hallo PHPler :) > > Ich versuche gerade, meine PHP3-Scripts nach PHP4 zu portieren, was > eigentlich ja kein Problem sein sollte. Leider bekomme ich beim Starten der > Scripte Fehlermeldungen. Folgendes funktioniert nicht: > > class test { > var test = "Test"; > } > > Dagegen ist das kein Problem: > > class test { > var test; > function test { > test = "Test"; > } > } > > Woran könnte das liegen? Vielleicht an einem Schalter beim Compile, der das > PHP "strenger" werden lässt? :) Ich hab das Modul nicht selbst kompiliert, > deswegen weiss ich nicht, ob sowas möglich ist... > > Die Fehlermeldung: Fatal error: Cannot instantiate non-existent class: test > in test.php on line 5 das ist doch nicht der Orginal-Code, oder? 1) die Variablennamen hinter 'var' bruachen weiter ihren '$' (sonst funktionieren beide Beispiele nicht) 2) PHP4 unterstützt nur noch Konstanten, aber keine berechneten Ausdrücke mehr für die Initialisierung von Member-Variablen d.h. 'var $test="Test";' sollte weiterhin funktionieren, 'var $test=6*7;' geht dagegen nicht mehr, da Parsing und Ausführung mittlerweile zwei getrennte Schritte sind und beim Anlegend der Klasse noch kein Code ausgeführt wird und somit auch keine Ausdrücke ausgewertet werden können deshalb ist es in PHP 4 notwendig, berechnete Werte im Konstruktor statt in der 'var' Deklaration zuzuweisein und auch für Konstanten wird es als 'guter Stil' empfohlen (siehe auch http://www.php.net/version4/incompatibilities.php) -- Hartmut Holzgraefe hartmut_(at)_six.de http://www.six.de +49-711-99091-77 fax:-99
php::bar PHP Wiki - Listenarchive