In Funktion aus Array auslesen?
Sam
- php
0 WauWau0 Sam
0 Thomas Luethi0 Sam0 Thomas Luethi0 Sam
Moin
habe folgendes Problem:
$array = array("test1", "test2", "test3");
$array[4] = "test4";
function getit() {
global $array;
print $array[2];
print $array[4];
}
Ich bekomme allerdings nur "test2" als ausgabe geliefert und nicht auch "test4". Warum?
Danke schonmal für eure Help.
Hallo Sam,
$array = array("test1", "test2", "test3");
$array[4] = "test4";
function getit() {
global $array;
print $array[2];
print $array[4];
}Ich bekomme allerdings nur "test2" als ausgabe geliefert und nicht auch "test4". Warum?
Sieht ganz so aus als ob getit() breits vor dem erstellen des [4].elementes des array aufgerufen wird.
WauWau
Habe vielleicht etwas zuw enig geschrieben, so etwas genauer:
$array = array("test1", "test2", "test3");
function getit() {
global $array;
print $array[2];
print $array[4];
}
$array[4] = "test4";
getit();
In dieser Reihenfolge ist es. Und ich rufe die Funktion 100pro erst nach dem Erstellen des Elements auf. Das habe ich schon überprüft, war auch das erste was ich dachte.
Hallo,
Bist Du sicher, dass $array vorher nicht
existiert bzw. leer ist?
$array = array("test1", "test2", "test3");
Das ist IMHO gleichbedeutend mit:
$array[0]="test1";
$array[1]="test2";
$array[2]="test3";
$array[4] = "test4";
Lass Dir doch mal hier - d.h. ausserhalb der Funktion - anzeigen,
was denn momentan in $array gespeichert ist:
echo "<pre>";
print_r($array);
echo "</pre>";
function getit() {
global $array;
print $array[2];
print $array[4];
}Ich bekomme allerdings nur "test2" als ausgabe geliefert und nicht auch "test4". Warum?
Seltsam. Ich wuerde erwarten, dass er "test3test4" ausgibt.
Btw.: $array finde ich als Variablenname nicht gerade schlau...
Gruesse,
Thomas
Die Variablennamen sind nur schnell gewählt nur hier schnell hingetippt.
Ausserhalb der Funktion sind die gerade ins Array eingetragenen Variablen vorhanden. So habe ich es jetzt auch als Übergangslösung gemacht, dass der Funktion eben der Wert des Arrays direkt übergeben wird. Ist aber umständlich und unübersichtlich.
Wie schon unten gezeigt ist die Reihenfolge Array - Funktion - etwas ins Array einfügen - Funktion aufrufen.
Hallo,
Die Variablennamen sind nur schnell gewählt nur hier schnell hingetippt.
Copy-Paste ist meist besser als "schnell tippen"...
[...] dass der Funktion eben der Wert des Arrays direkt übergeben wird.
Das haette ich als naechstes vorgeschlagen... ;-)
Wie schon unten gezeigt ist die Reihenfolge Array - Funktion - etwas ins Array einfügen - Funktion aufrufen.
Erstaunt mich trotzdem sehr, dass das nicht klappt.
Und ich kann es auch nicht nachvollziehen.
Code:
----------
$meinarray = array("test1", "test2", "test3");
echo "<h2>Testausgabe 1</h2>";
echo "<pre>";
print_r($meinarray);
echo "</pre>\n";
function getit() {
global $meinarray;
print("<h2>In Funktion:</h2><p>[\n");
print $meinarray[2];
print "] [";
print $meinarray[4];
print "]";
}
$meinarray[4] = "test4";
echo "<h2>Testausgabe 2</h2>";
echo "<pre>";
print_r($meinarray);
echo "</pre>\n";
getit();
----------
Ausgabe:
----------
Testausgabe 1
Array
(
[0] => test1
[1] => test2
[2] => test3
)
Testausgabe 2
Array
(
[0] => test1
[1] => test2
[2] => test3
[4] => test4
)
In Funktion:
[test3] [test4]
----------
Gruesse,
Thomas
Copy & Paste geht nicht, da die Programmteile auf Dateien verstreut sind und erst zusammen includet werden :) Ausserdem wärs dann 20x so lang.
Vielleicht muss ich einfach noch eine Nacht drüber Schlafen damit ich den fehler seh.