Seite 1 von 1

$ und nicht $, Variablen in PHP

Verfasst: 27.04.2010 15:46
von wuschba
Hallo!

Ich würde gerne einmal wissen, was der Unterschied zwischen dem Setzen einer Variable mit und ohne Dollarzeichen ist:
<!-- DEFINE myVar = 2 -->
<!-- DEFINE $myVar = 2 -->
... ist ja beides möglich.

Ich habe auch schon mit <!-- DEFINE $myVar = 2 --> und dann <!-- IF $myVar == 2 --> Abfragen hinbekommen. Nun müsste ich myVar jedoch über PHP setzen. Leider scheint:

Code: Alles auswählen

$template->assign_vars(array(
					'$myVar' => 2
				));
nicht zu funktionieren, aber auch bei:

Code: Alles auswählen

$template->assign_vars(array(
					'myVar' => 2
				));
passiert nichts. Wie setze ich eine Variable mit $ vorne dran in PHP?

Re: $ und nicht $, Variablen in PHP

Verfasst: 27.04.2010 17:05
von BNa
Hallo wuschba,

ich glaube, ich weiss, warum das nicht funktioniert.

In Deiner php solltest Du das so eintragen.

Code: Alles auswählen

$template->assign_vars(array(
        'S_VARIABLE_2' => ($myvar == '2') ? true : false
				));
$myvar muss dazu vorher in einem Switch oder einer Abfrage definiert worden sein.

Zum Beispiel:

Code: Alles auswählen

if ($variable1 == variable2)
{
$myvar = '2':
}
Weist Du vorher definierte Werte dynamisch zu, dann kannst Du das auch so machen.

Code: Alles auswählen

$template->assign_vars(array(
        'S_VARIABLE_' . $myvar  => true
				));
Du musst nur darauf achten, das $myvar vorab immer korrekt gefüllt wird.

Das kann dann im Template abgefragt werden. Das gilt für beide dargestellten Codebeispiele.

Code: Alles auswählen

<!-- IF S_VARIABLE_2 -->
Viele Grüsse, Bna

Re: $ und nicht $, Variablen in PHP

Verfasst: 27.04.2010 17:59
von wuschba
Hallo Bna,

danke für Deine Antwort. Mein Problem ist, dass eben evtl. die Variable vorab noch nicht definiert wurde.

Ich habe es jetzt so gelöst (in der Hoffnung, dass es kein allzu großer Hack ist):

Code: Alles auswählen

$template->_tpldata['DEFINE']['.']['myVar'] = 2;
Dann kann ich mittels <!-- IF $myVar darauf zugreifen und ggf. die Variable auch mittels <!-- DEFINE $myVar statt über PHP setzen.

Re: $ und nicht $, Variablen in PHP

Verfasst: 28.04.2010 11:52
von nickvergessen
wuschba hat geschrieben:Ich habe es jetzt so gelöst (in der Hoffnung, dass es kein allzu großer Hack ist):

Code: Alles auswählen

$template->_tpldata['DEFINE']['.']['myVar'] = 2;
Dann kann ich mittels <!-- IF $myVar darauf zugreifen und ggf. die Variable auch mittels <!-- DEFINE $myVar statt über PHP setzen.
Doch eigentlich schon ;)

Am besten guckst du dir mal diesen Link an:
http://wiki.phpbb.com/display/DEV/Template.assign+vars

Das wichtigste ist wohl, das alle Variablen im Normalfall in GROßBUCHSTABEN geschrieben werden. Ich weiß grad nicht, ob das dein Problem sogar ist.