Problem mit eigenen globalen Variablen

  • Hi,

    langsam verzweifle ich...

    Ich möchte per Funktion bei deren erstem Aufruf einer Variablen (z.B. maxID) einen Wert übergeben. Diese habe ich mit global definiert. Wenn die Funktion danach wieder aufgerufen wird, soll der Wert nicht mehr neu bestimmt, sondern der beim ersten Aufruf zugewiesene Wert lediglich wieder zurück gegeben werden. Da die Variable doch als global definiert ist, sollte hier doch noch der Wert, der beim ersten Funktionsaufruf zugewiesen wurde, drinstehen. Ist aber nich ...
    Anbei das Coding:

    function tm_get_list_param($param, $id, $where){
    global $maxID, $totalCount;

    if ( !$_REQUEST["tpage"]){
    if ($param == 'maxID'){
    $maxID = $id;
    return $maxID;
    } else {
    $totalCount = tm_get_treemotions_count($where);
    return $totalCount;
    }
    } else {
    if ($param == 'maxID'){
    return $maxID;
    } else {
    return $totalCount;
    }
    }
    }

    Wo ist der Denkfehler?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ob die Variablen gesetzt oder nur gelesen werden, ist von $_REQUEST["tpage"] abhängig. Das wird sich innerhalb der Laufzeit des Skriptes nicht ändern. Bei einem erneuten Aufruf des Skriptes sind aber auch globale Variablen wieder verschwunden. Global für Variablen bedeutet nur, sie sind in einem globalen Kontext verfügbar, und nich nur innehalb der Funktion. Sie sind natürlich nicht dauerhaft über Skriptaufrufe hinweg verfügbar.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!