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