Hi Griever,
Ich habe eine Klasse in PHP:
$variable1 = "Blabla extern";
class meineklasse{
var $variable2 = "Blabla intern";
}Wie krieg ich es hin, dass die Variable "variable1" von der Variable "variabl2" übernommen wird?
Die $variable1 ist eine so genannte globale Variable. Sie ist ohne spezielle Hilfsmittel nur außerhalb von Klassen oder Funktionen sichtbar -- quasi nur im "Hauptprogramm".
Um sie innerhalb deiner Klasse zugänglich zu machen, gibt es zwei Möglichkeiten:
1. Du greifst auf das "superglobale" Array $GLOBALS zurück:
$variable1 = "Blabla extern";
class meineklasse{
var $variable2;
function meineklasse() {
$this->variable2 = $GLOBALS['variable1'];
}
}
2. Du teilst deiner Klasse mit, dass du die globale Variable $variable1 in der Klasse benutzen möchtest. Dazu gibt es das Schlüssewort "global":
$variable1 = "Blabla extern";
class meineklasse{
var $variable2 = irgendwas;
function meineklasse() {
global $variable1;
$this->variable2 = $variable1;
}
}
Im PHP-Handbuch:
Geltungsbereich von Variablen
Habs so probiert:
$variable1 = "Blabla extern";
class meineklasse{
var $variable2 = $variable1;
}Doch da krieg ich folgende Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE in ...
In dem Fall hat der Fehler erstmal nichts mit globalen Variablen zu tun ...
Du kannst mit "var" einer Klassen-Variablen nur "feste" Werte (Konstanten, String-Literale) zuweisen -- keine Variablen. Um Variablen-Werte oder Ergebnisse von Funktionen zuzuweisen, kannst du den Konstruktor der Klasse benutzen. Unter PHP4 ist das eine innerhalb der Klasse definierte Funktion, die den gleichen Namen hat wie die Klasse.
Im PHP-Handbuch:
OO-Programmierung in PHP4
MffG
EisFuX
Auch meine Hosenträger sind intelligent, in dem Sinne, dass man sie regulieren kann. Sie besitzen ein adaptives Verhalten.
Stanisław Lem
