Die Variablen welche außerhalb von den Klassenfunktionen deklariert werden sind in diesen nicht verfügbar. Wie macht man sie verfügbar?
Wie bekommt man ein variable bzw. deren Wert in eine Funktion bzw. class?
Einklappen
X
-
-
klassenvariablen sind static
im allgemeinen verwendet man in oop sprachen eher selten public attribute
man kapselt die daten in getter und setter methoden
PHP-Code:class Foo{
private $_bar = null;
public static $_var = 1;
//konstruktor
public function Foo($arg){
$this->setBar($arg);
}
public function getBar(){
return $this->_bar;
}
public function setBar($arg){
if($arg != null)
$this->_bar = $arg;
else
throw new Exception("invalid parameter");
}
}
//aufruf einer statisch bzw einer klassenvariable
echo Foo::$_var;
Kommentar
-
Original geschrieben von BugBite
Klassenvariablen sind statische Attribute und damit objektunabhängig.
im übrigen ist es m.m nach egal, ob man die klassenvariablen, classmember oder klassenattribute nennt.
Kommentar
-
na tut mir leid aber Klassenattribut/variable is im OOP nunmal ein
begriff der eine bestimmte bedeutung hat... wenn du alles
klassenattribut nennst kommts nur mal zu missverständnissen wie
gerade eben.
Wie willst du denn variablen in klassen objektunabhängig machen
wenn nicht mit static?
Kommentar
-
Dann mal ein Beispiel. Die Variable ist außerhalb der Klasse und heißt $vara.
PHP-Code:5 $vara = "test";
6 class blabla {
7 function test()
8 {
9 $message = "Test: $vara\r\n";
10 return $message;
11 }
12 }
13
14 $a = new blabla();
15
16 print $a->test();
Zuletzt geändert von janein; 20.04.2008, 20:21.
Kommentar
-
Original geschrieben von janein
Wie bekommt man $vara in die Klasse bzw. deren Werte, um damit innerhalb der Klasse weiter arbeiten zu könen?
PHP-Code:5 $vara = "test";
6 class blabla {
7 public function test($vara)
8 {
9 $message = "Test: $vara\r\n";
10 return $message;
11 }
12 }
13
14 $a = new blabla();
15
16 print $a->test($vara);
Kommentar
-
janein bitte fang nicht an jetzt einfach so mit klassen rumzuspielen,
ohne das prinzip dahinter zu verstehen.
bevor wir uns jetzt hier im forum durch das ganze thema fressen:
mach einfach mal von hinten bis vorne ein oop tutorial, ich glaub peter
kropff ist da ne super anlaufstelle
zu deinem beispiel:
PHP-Code:...
public function test($arg){
$message = "Test: $arg\r\n";
return $message;
}
...
$blabla = new blabla();
echo $blabla->test($vara);
ansonsten kannst du noch variablen über den konstruktor setzen
Kommentar
-
Original geschrieben von BugBite
so ne funktion wäre dann aber eh statisch
Kommentar
-
Original geschrieben von h3ll
So:
PHP-Code:5 $vara = "test";
6 class blabla {
7 public function test($vara)
8 {
9 $message = "Test: $vara\r\n";
10 return $message;
11 }
12 }
13
14 $a = new blabla();
15
16 print $a->test($vara);
@BugBite
Danke für die Warnung. Aber Versuch macht kluch ... und Fehler sind da, um sie zu machen.
Kommentar
Kommentar