PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Statische Variable in String einfügen



PierreS
13-08-2004, 09:36
Hallo,

ich habe folgendes Problem:

Ich möchte eine statische Variable innerhalb eines Strings notieren.



$string = <<<end
blah
foo::$var
blah
end;


Leider wird hier nur "$var" geparst, was es natürlich nicht gibt. Auch mit "{foo::$var}" funktioniert es nicht.

Hat hier jemand eine Lösung?

Pingu
13-08-2004, 09:57
Hi,

ich weiß jetzt nicht was Du unter einer "statischen Variable" verstehst. Aber müßte es nicht eher "{$foo::bar}" bzw. "{$foo->bar}" lauten als "{foo::$bar}"?

Pingu

Gaert
13-08-2004, 11:34
Hallo,

@Pingu Mit statischer Variable meint er eine Klassenvariable vom Typ static.

foo::$var ist da schon korrekt.
$foo::var gibt es nicht!

Funktionieren kann das nur so...


$var = foo::$var;
$string = <<<end
blah
$var
blah
end;

Pingu
13-08-2004, 12:05
@Pingu Mit statischer Variable meint er eine Klassenvariable vom Typ static.
Achso. Hmmm.... Dann weiß ich auch grade nicht weiter, da ich damit noch nicht viel gemacht habe.

Gruß

Pingu

EDIT: Immer dieser Prosecco am helligsten Tag. *schwips* *g*

Gaert
13-08-2004, 18:42
Ja wie....?

Prosecco am helligsten Tag - wo gibts denn sowas?

Aber damit du nicht dumm stirbst: http://zend.com/manual/language.oop5.static.php :D

PierreS
16-08-2004, 10:55
Hallo,

@Pingu Mit statischer Variable meint er eine Klassenvariable vom Typ static.

foo::$var ist da schon korrekt.
$foo::var gibt es nicht!

Funktionieren kann das nur so...


$var = foo::$var;
$string = <<<end
blah
$var
blah
end;


Das kann ja nicht im Sinne des Erfinders sein. Ich glaube ich schreibe mal einen Bug-Report.

Statische Methoden und Variablen sind dann ganz prkatisch, wenn man von einer Klasse eh nie mehr als eine Instanz braucht. So kapsel ich z.B. den SQL-Zugriff, und den brauche ich nunmal nuer einmal.

Gaert
16-08-2004, 12:31
Ein Bugreport wird nichts bringen, da das Verhalten kein Bug ist.
Einfache Variablen in einen String enzubetten ist ohnehin schon ein Luxus der dir nur von PHP geboten wird.
Normale Variablen von Klassenvariablen zu unterscheiden ist vom Parser her fast unmöglich.

Gruß,

Gaert

PS: Was im Sinne des Erfinders ist konnte ich während eines Plauschs mit Rasmus Lerdorf auf dem Linuxtag letztes Jahr erfahren: Er benutzt PHP nach wie vor meistens nur als Template System... so wie es von ihm ursprünglich auch gedacht war ;) .

PierreS
16-08-2004, 13:42
Naja, es stimmt schon, nach foo::$bar zu parsen braucht wohl zwei Durchgänge. Die Syntax ist generell eh etwas verwirrend. Vielleicht hätte man sich hier mehr an Java anlehnen sollen.