Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Function = Variable
#1
Hallo.
Zur Zeit versuche ich mal wieder den PHP-Code meiner Homepage einwenig aufzuräumen. Und da ist mir aufgefallen, dass man 3 Variablen über eine Function zusammenfassen kann, da sich diese nur in den Klassen jeweils eines Listenpunktes unterscheidet.

Soll in etwa das heißen:
PHP-Code:
$'<ul class="Liste">
<li class="klasse1">Text1</li>
<li class="klasse2">Text2</li>
<li class="klasse2">Text3</li></ul>'

Bei den anderen beiden Variablen (nennen wir sie einfach mal $2 und $3) ist nun also der 1. Listenpunkt class="klasse2" und der 2. bzw. 3. class="klasse1".

Über If-Conditions hab ich das Ganze auch schon in einer Function zum Laufen gebracht. Das sah dann in etwa so aus:
PHP-Code:
function liste($xy)
{ echo 
'<ul class="Liste">
<li class="'
;
if (
$xy == "1") {echo "klasse1";}
else {echo 
"klasse2";}
echo 
'">Text1</li>
<li class="'
;
if (
$xy == "2") {echo "klasse1";}
else {echo 
"klasse2";}
//das gleiche dann nochmal mit $xy == "3"
echo '">Text3</li></ul>"; 
Das Ganze lässt sich ja jetzt mit
PHP-Code:
liste(1/*oder*/
liste(2/*oder*/
liste(3
super in den Text einfügen. Da ich allerdings nur die global.php ändern will, wo dies vermerkt ist, und nicht alle anderen Dateien, die dies benutzen, wollte ich also $1 mit liste(1) usw. gleichsetzen. Also:
PHP-Code:
$== liste(1);
$
== liste(2);
$
== liste(3); 
Mein Problem hierbei ist allerdings, dass ich nun alle drei Varianten gleich angezeigt bekomme - auch in der global.php, wo eigentlich gar nichts angezeigt werden sollte.
Wie kann ich das nun so verändern, dass ich die Variablen in den restlichen Dateien bebehalten kann (und diese nicht umändern muss) und trotzdem das Ganze in eine function zu packen?

Ich hoffe einfach mal, dass mir hier jemand helfen kann - immerhin gibt es hier genug PHP-Profis. Ich bin leider im Moment am Verzweifeln, da sich auch mit Google nichts passendes hat finden lassen.

MfG,
CKOne
Man kann nicht alles haben - zumindest nicht gleichzeitig.
Zitieren
#2
Als erstes brauchst du nur einfache Gleichheitszeichen:
PHP-Code:
$liste(1);
$
liste(2);
$
liste(3); 
Außerdem kannst du kein echo() benutzen, da dann der HTML-Code direkt ausgegeben wird. Ich nehme mal an, dass du die Variablen in Templates benutzen willst. Du musst die Ausgabe in eine Variable schreiben und diese am Ende der Funktion mit return zurückgeben. Siehe: http://www.html-world.de/program/php_6.php

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Vielen Dank. Es funktioniert. Smile

Thema ist also erledigt.

MFG,
CKOne.
Man kann nicht alles haben - zumindest nicht gleichzeitig.
Zitieren