PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arrays in Funktionen


Don Colleone
09.11.2007, 16:14:03
Hallo werte PHP Profis,

ich beschäftige mich seit einigen Tagen mit Arrays, da ich da schlicht und ergreifend bei meinem nächsten Projekt nicht drumherum komme.

Ich habe dabei folgendes Problem:


<?php

function datensatz($datensatzid){

//daten werden aus SQL Datenbank gelesen
$themen = array ($reihe3['thema']);

//dann werden noch weitere mittels while schleife eingefügt
$plus = unshift($themen, $reihe3['thema']);

}

//wenn ich jetzt das hier mache passiert gar nix:
datensatz($eineid);
print_r($themen);

?>


Wenn ich print_r($themen); aber innerhalb der Funktion stehen habe, wird der Array einwandfrei ausgegeben.

Warum ist der Array aber leer, sobald er ausserhalb der Funktion aufgerufen wird?

rambi
09.11.2007, 16:19:53
Weil die Variable nur im localen Namensraum der Funktion existiert!
Lesen: http://www.php.net/manual/de/language.functions.php

Don Colleone
09.11.2007, 16:27:38
Ich habe das jetzt so probiert, aber so läuft es nicht:

//in der Funktion
return array($themen);

rambi
09.11.2007, 16:57:32
error_reporting(E_ALL);
ini_set('display_errors', TRUE);

function datensatz($datensatzid)
{

//daten werden aus SQL Datenbank gelesen
$themen = array ($reihe3['thema']);

//dann werden noch weitere mittels while schleife eingefügt
$plus = unshift($themen, $reihe3['thema']);
return $themen;
}

print_r(datensatz($eineid));

Don Colleone
09.11.2007, 17:10:10
Na wunderbar, nu klappt das ja schon ganz gut, aber da gibts ein weiteres Problem.

Ich kann den Array nicht in Einzelteilen Aufrufen. Zum Beispiel:
print "ID->".$themen['id'];

Don Colleone
09.11.2007, 17:14:41
Nein schnick schnack ich habs:

$thema = datensatz("1");
print_r ($thema['0']);

//ergibt den Inhalt von Index 0 von dem Array themen


Super, ich danke dir rambi!