kostenloser Webspace werbefrei: lima-city


PHP, Arrays in Funktionen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jepz

    jepz hat kostenlosen Webspace.

    Also ich h?tte da die frage, wie ich ein array wie eine "global variable" in einer function nutzen kann

    also ob es die m?glichkeit gibt,

    global array;

    oder so ?hnlich gibt..?

    da mir anscheinend niemand sofort antwortet, beschreibe ich mal die situation:

    ich habe eine externe Datei, die nicht ver?ndert werden darf, in der ein array steht, dessen inhalt ich gerne in einer Funktion nutzen w?rde...

    Beitrag ge?ndert am 15.11.2005 22:39 von jepz
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Wenn du das Array mit include() in dein Script holst, h?ngt es davon ab, wo das Array definiert wurde. Im Hauptprogramm ist es automatisch global, und sobald du es mit global in der Funktion verf?gbar machst, kannst du es wie ein gew?hnliches Array benutzen. Ist es in einer Funktion definiert, geht das nat?rlich nicht.

    Ich bin kein Fan von mit global definierten Variablen. Daher w?rde ich dir empfehlen im Hauptprogrammteil deines Scriptes folgendes zu schreiben:

    $GLOBALS['mein_array'] = $das_array_aus_dem_eingebundenen_script;

    Jetzt kannst du jederzeit auf die Array-Elemente zugreifen, ohne global zu benutzen. Und als Nebeneffekt l?st du das Problem, dass das Original-Array nicht ?berschrieben werden darf. Denn mit dem Zuweisungsoperator wird automatisch eine Kopie erstellt -- und nur die wird ver?ndert.

    MfG
    alopex
  4. Autor dieses Themas

    jepz

    jepz hat kostenlosen Webspace.

    hmm damit hab ich aber nicht das problem gel?st, denn dann dar ich


    $GLOBALS['array1']=$array[1];
    $GLOBALS['array2']=$array[2];
    $GLOBALS['array3']=$array[3];

    etc.

    machen oder?

    bzw. $GLOBALS['array']=$array;
    funktioniert nicht.. (wo ist der Fehler?)

  5. hmm damit hab ich aber nicht das problem gel?st, denn dann dar ich


    $GLOBALS['array1']=$array[1];
    $GLOBALS['array2']=$array[2];
    $GLOBALS['array3']=$array[3];

    etc.

    machen oder?

    bzw. $GLOBALS['array']=$array;
    funktioniert nicht.. (wo ist der Fehler?)


    T?rlich funktioniert das.

    Nehmen wir mal an, dein Array hei?t $altes_array:

    $altes_array = array(
    'bratwurst',
    'senf',
    'bier' => 'fass'
    );

    Dann kopierst du diese Array in das globale Array:

    $GLOBALS['neues_array'] = $altes_array;

    Jetzt kannst du auf die einzelnen Elemente so zugreifen:

    print( $GLOBALS['neues_array'][0] );
    // hier kommt bratwurst raus

    print( $GLOBALS['neues_array']['bier'] );
    // kommt fass raus.

    Hoast mi?
  6. Autor dieses Themas

    jepz

    jepz hat kostenlosen Webspace.

    Jo hat jetzt gefunzt... (hatte auch noch nen tippfehler... :( (GLOBALES statt GLOBALS getippt..))


    hab das prob jetzt so gel?st:

    <?php
    include("test.php");

    function tester()
    {
    $array=$GLOBALS['array'];
    echo $array[1];
    }
    ?>

    Vielen Dank
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!