Variablen in Klassen?
Griever
- php
Hi.
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?
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 ...
Brauche Hilfe!
MFG
Griever
Hallo,
da var $name=$GLOBALS['name'];
nicht möglich ist, wirst Du Dich einer Funktion bedienen müssen:
class dingens{
function set($name,$value){
$this->$name=$value;
}
}
$a=new dingens();
$a->set('susi',6);
echo $a->susi;
Gruß aus Berlin!
eddi
Hi.
Geht das auch irgendwie so:
$a=new dingens($wert)
?
MFG
Griever
Re:
$a=new dingens($wert);
Was ergeben denn Deine eigenen Versuche?
Gruß aus Berlin!
eddi
Hi
Fehlermeldungen:
Parse error: syntax error, unexpected T_String in ...
Parse error: syntax error, unexpected T_Variable in ...
Natürlich genau an der Stelle, wo ich es übergebe.
MFG
Griever
Re:
Bitte poste den Quellcode. Bitte tu dies zukünftig auch unaufgefordert!
Gruß aus Berlin!
eddi
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
echo $begrüßung;
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:
- Du greifst auf das "superglobale" Array $GLOBALS zurück:
- Du teilst deiner Klasse mit, dass du die globale Variable $variable1 in der Klasse benutzen möchtest. Dazu gibt es das Schlüssewort "global":
Beide Varianten sind zwar unter PHP möglich, aber guter Stil ist das nicht. Sowohl Funktionen als auch Klassen sollten im Idealfall eigenständig arbeiten können, ohne auf anderswo definierte Variablen zugreifen zu müssen. Werte die in der Funktion oder Methode weiterverarbeitet werden sollen übergibt man optimalerweise über Funktionsparameter.
echo "$verabschiedung $name";