Guten Abend. Eigentlich kann ich PHP, allerdings habe ich mich in letzter Zeit so sehr mit Java auseinander gesetzt, dass ich manche Dinge verwechsle. Aber jetzt komme ich gerade gar nicht daraus, wie es eigentlich gehört:
Ich will eine Klasse schreiben und eine Variable an diese übergeben. Mit Hilfe des Wertes dieser Variablen soll dann die Klasse konstruiert werden.
Gebannt an Java habe ich der Methode, die ich als Konstruktor verwenden will, den Namen der Klasse gegeben. Das ist natürlich falsch. Bitte helft mir auf die Sprünge.
mfg Christoph
gelöst?
So, ich glaube, dass ich nur vergessen habe „function“ vor den Konstruktornamen zu schreiben. Ich bin mir aber nicht 100%ig sicher, ob es so passt. Sollte es noch Probleme geben, werde ich mich erneut melden.
mfg Christoph
Hallo Christoph,
der Vollstaendigkeit halber hier noch ein einfaches Beispiel:
<?php class test {
function \_\_construct( $var ) {
echo 'hello '.$var;
}
}
new test('world');
?\>
Gruss
Stefan
Stimmt, danke. mit function __construct habe ich das zuvor immer gemacht, ich habe inzwischen auch eine alte Klasse gefunden, in der ich das so gelöst habe. Aber mit function [classname] funktioniert es auch wunderbar. Anscheinend hat PHP an dieser Stelle mal wieder (wie so oft) mehrere Möglichkeiten bereit gestellt.
mfg Christoph
function [classname] ist deprecated und sollte mit PHP 5.3.3 nicht mehr funktionieren. Eine Ausnahme ist dabei wohl wenn man mit Namespaces arbeitet, was ich aber aus Gruenden der Uebersichtlichkeit auch nicht empfehlen wuerde.
Siehe auch http://de3.php.net/manual/en/language.oop5.decon.php
Gruss
Stefan