Ich verstehe Deinen Ansatz nicht wirklich. Wenn Du z.B. in einer For-Schleife bist sollte die Variable weiterhin da sein.
Wenn Du die Variable in einer Funktion aufrufen willst kannst Du sie a) übergeben und b) global machen. (http://php.net/manual/de/language.variables.scope.php).
Ergebnis 1 bis 9 von 9
- 26.01.2012, 16:01 #1Finkenwerder Herbstprinz
Themenstarter
- Registriert
- 03.2008
- Ort
- Berlin, Germany, Germany
- Beiträge
- 463
PHP "permanente" Variablen? [WordPress]
Liebe Community!
Ich schreibe gerade an einem WordPress Plugin und brauche da mal etwas Hilfe.
Mein Plugin unterstützt Shortcodes und produziert mit deren Hilfe einen bestimmten HTML Code.
Wenn der Shortcode jetzt allerdings ein zweites Mal aufgerufen wird (er kommt z.B. zwei mal auf eine Seite vor), muss der generierte HTML Code eindeutig zu unterscheiden sein.
Also Beispielsweise:
und so weiter.Code:<div class="myClass-0"></div> <div class="myClass-1"></div> <div class="myClass-2"></div>
Ich habe es mit folgendem PHP-Code probiert:
Code:if(!$classID) { $classID = 0; } else { $classID = $classID + 1; } echo ("<div class=\"myClass-".$classID."\"></div>");
Leider funktioniert das nicht.
Scheinbar wird die Variable nach einmaligem Aufruf der Funktion gleich wieder gelöscht.
Ich müsste irgendwie eine Art von permanenter Variable in den Parser einschleusen, die nicht gelöscht wird.
Leider hab ich mit solchen Sachen keine Erfahrung und wüsste nicht, wie ich das angehen sollte.
Hat vielleicht jemand eine Idee dazu?
Freue mich über jede Hilfe!
Liebe Grüße
J.Mini-Leo
You can only take what you can carry.
- 26.01.2012, 16:33 #2
- 26.01.2012, 16:48 #3Finkenwerder Herbstprinz
Themenstarter
- Registriert
- 03.2008
- Ort
- Berlin, Germany, Germany
- Beiträge
- 463
Das Problem ist ja, dass ich mich nicht in einer Schleife o.Ä. befinde.
WordPress includiert meine plugin PHP Datei und verwendet den Shortcode von dieser Datei (dahinter steckt eine einfache Funktion).
Wenn WordPress jetzt diese Funktion bzw. meinen Shortcode ein zweites Mal ausführt, ist meine Variable nicht mehr vorhanden.
Vielleicht ist die Frage ja auch mehr für WP Profis…
Das mit dem "Globalisieren" wäre ja mal 'nen Versuch wert.
Ich hab das auch schon probiert, nur noch nicht ganz verstanden.
Wie geht das denn genau?
Muss ich die Variable erst deklarieren und dann globalisieren??Mini-Leo
You can only take what you can carry.
- 29.03.2012, 22:57 #4Weigelts Zinszahler (Rotfranch)
- Registriert
- 07.2008
- Ort
- Stuttgart
- Alter
- 27
- Beiträge
- 251
Meinst Du sowas hier:
http://php.net/manual/en/language.constants.phpMacBook Pro 15" 2011 / DELL 2209 WA / WACOM Intuos3 A5 / LaCie Grand 1TB / G-Tech G-Safe / iPhone 4S 16GB
- 29.03.2012, 23:20 #5
Oder, gerade wenn du von Funktionen sprichst, meinst du vielleicht auch statische Variablen (google mal nach "static php").
- 08.04.2012, 18:13 #6
Kannst du vielleicht mal etwas mehr Code posten, damit man sich etwas darunter vorstellen kann? Was genau willst du ersetzen/ausgeben und wie wird deine Funktion aufgerufen?
Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 16.04.2012, 22:14 #7Jonagold
- Registriert
- 05.2010
- Beiträge
- 23
Hi!
Also folgendes Problem. Naja nicht Problem, sondern Feature:
In PHP ist eine Funktion wie eine kleine eigene Welt. Die Variablen, die Du in dem Funktionsaufruf setzt sind dann nur in der Funktion verfügbar.
Genauso mit dem Variablen aus dem übrigen Script. Die sind nur "draussen" verfügbar. Aber nicht innerhalb der Funktion.
Siehe dazu: http://php.net/manual/de/language.variables.scope.php
Zur Problemlösung: Setze die Variable in deiner Funktion als global. Also -> "global $classID;" Dann kannst Du sie auch draussen Verwenden.
LG
- 17.04.2012, 16:43 #8
Das wiederum ist bockmist. Du kannst keine Funktionsinternen Variablen ausserhalb verwenden mit "global". Das macht genau das umgekehrte, und zwar die Variablen von ausserhalb in die Funktion einzubinden...
- 25.04.2012, 01:15 #9
Yepp!
MacBook Pro 15'' i7 2.2 GHz | MacBook Air 1.6 GHz | iPhone 4S |new iPad 3G | Mac Mini 2.4 GHz


Zitieren


