Ergebnis 1 bis 9 von 9
  1. #1
    Finkenwerder 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:
    Code:
    <div class="myClass-0"></div>
    <div class="myClass-1"></div>
    <div class="myClass-2"></div>
    und so weiter.

    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.

  2. #2
    Goldparmäne Avatar von torben1
    Registriert
    08.2008
    Ort
    Essen
    Alter
    35
    Beiträge
    560
    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).

  3. #3
    Finkenwerder 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.

  4. #4
    Weigelts Zinszahler (Rotfranch)
    Registriert
    07.2008
    Ort
    Stuttgart
    Alter
    27
    Beiträge
    251
    MacBook Pro 15" 2011 / DELL 2209 WA / WACOM Intuos3 A5 / LaCie Grand 1TB / G-Tech G-Safe / iPhone 4S 16GB

  5. #5
    Englischer Kantapfel Avatar von _linx_
    Registriert
    01.2009
    Alter
    19
    Beiträge
    1.086
    Oder, gerade wenn du von Funktionen sprichst, meinst du vielleicht auch statische Variablen (google mal nach "static php").

  6. #6
    drp
    drp ist offline
    Ontario Avatar von drp
    Registriert
    04.2011
    Beiträge
    342
    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

  7. #7
    Jonagold
    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

  8. #8
    Englischer Kantapfel Avatar von _linx_
    Registriert
    01.2009
    Alter
    19
    Beiträge
    1.086
    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...

  9. #9
    Pomme Etrangle Avatar von hillepille
    Registriert
    07.2009
    Ort
    Marburg
    Beiträge
    911
    Yepp!
    MacBook Pro 15'' i7 2.2 GHz | MacBook Air 1.6 GHz | iPhone 4S |new iPad 3G | Mac Mini 2.4 GHz

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •