wertrückgabe aus externer funktion

tach community…

ich habe eine funktion die mir einen array aus dateinamen eines verzeichnisses erstellt…

zur verdeutlichung:
funktion –
lese DIR „nameDirectory“
schreibe dateinamen in $files

das funktioniert praechtig. nun moechte ich die funktion sehr global halten und die selbst nichts ausgeben lassen. sie soll lediglich diesen array zurueckgeben… wie mache ich das denn? die variablen sind ja nicht public/global. kann also nicht drauf zugreifen.

wie kann ich die funktion aufrufen und dann auf die ergebnisvariablen zugreifen?

require_once(‚functions.php‘);
funktion_readMyDir(‚nameDirectory‘); // funktionsaufruf

// hier soll dann die ausgabe der files stattfinden.

merci für die hilfe…
komme da einfach nicht weiter

Grusz

Michael

hi,

tach community…

ich habe eine funktion die mir einen array aus dateinamen
eines verzeichnisses erstellt…

zur verdeutlichung:
funktion –
lese DIR „nameDirectory“
schreibe dateinamen in $files

das funktioniert praechtig. nun moechte ich die funktion sehr
global halten und die selbst nichts ausgeben lassen. sie soll

warum?

lediglich diesen array zurueckgeben… wie mache ich das denn?
die variablen sind ja nicht public/global. kann also nicht
drauf zugreifen.

wie kann ich die funktion aufrufen und dann auf die
ergebnisvariablen zugreifen?

require_once(‚functions.php‘);
funktion_readMyDir(‚nameDirectory‘); // funktionsaufruf

// hier soll dann die ausgabe der files stattfinden.

hmm, anscheinend bin ich zu deppert und verstehe nicht richtig was du meinst…welchen vorteil hat man wenn man auf einen returnwert verzichtet?
warum gibst du als rueckgabewert der funktion nicht einfach die files als array zurueck?

function funktionsname(parameter)
{
// einlesen der files in ein array

return array;
}

wenn nicht, gibt es auch die moeglichkeit, dir eine klasse zu basteln
und dann via einer speziellen methode diese variablen zurueckzugeben.

$files = new CLASSENNAME(„Verzeichnisname“); // hier initiieren der klasse
$files.toString(); // hier deine Ausgabe

oder aber du arbeitest mit referenzen, und uebergibt einfach nur eine referenz an die funktion, in die du schliesslich die werte uebergibst.

function name(&$file)
{
//irgendwas an die adresse zu der $file zeigt schreiben…
return;
}

oder aber du setzt voraus dass deine funktion einen uebergabeparameter bekommt, die den return reguliert. also z.B.

function name($RETURN=0)
// das hier bedeutet, das mit aufruf von name() $RETURN den wert 0 bekommt
// mit Aufruf von name(1) den wert 1
{

if ($RETURN==0)
return;
else if ($RETURN==1)
return $array;
else
{
echo "input was absolutely rubbish
";
exit;
}
}
wenn du dann $RETURN bei funktionsaufruf nicht gesetzt hast, gibt er als Satndard keinen wert zurueck…

oder aber du machst folgendes:

$Directory=„Directory“; // *
include(„get_files_from_dir.php“);
var_dump($Directory);
dann veraenderst du deine function so, dass es schliesslich keine funktion mehr ist…

und liest direkt dort dein dir aus:

BSP. (get_files_from_dir()):
$Directory = system(„ls $Directory“); // hier nimmt er dann den Variableninhalt von *
$Directory= explode(" ", $Direcory); // natuerlich koennen hier noch einige veraenderungen kommen. funktionsaufrufe usw. um Directory zu bearbeiten.

// schluss mit get_files_from dir

wenn du dann in deiner anderen datei, schliesslich wieder nach dem include auf $Directory zugreifst sind auch dort alle veraenderungen wirksam.

probier es doch einfach mal mit folgendem beispiel:

// hallo.php

<?php $HalloPHP;
include("halloPHP.php"); echo $HalloPHP; ?\> // ende hallo.php // halloPHP.php <?php $HalloPHP="Hallo PHP";
?\> // ende halloPHP.php dann bekommst du anschliessend im echo : Hallo PHP sollte jedenfalls so sein... hoffe das hilft. cu josh