PHP, Arrays in Funktionen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anscheinend
beitrag
bratwurst
einzelnen elemente
elemente
externe datei
fan
fehler
fragen
funktion
gel
hauptprogramm
inhalt
kopie
nebeneffekt
nutzen
situation
test
tippfehler
vielen dank
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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? -
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage