array aus einer funktion returnen

Bomber

Erfahrenes Mitglied
nabnd *gähn*

also ich hab ne funktion geschrieben, die eine template datei öffnen und in zwei teilen als array nachdem ich sie an einer stelle gesplittet (oder meinetwegen auch explodet) habe zurückgeben soll.

leider gottes gibt der das array aber nicht zurück oder nicht richtig, weil wenn ich innerhalb des scripts irgendwo echo $template[0]; mache passiert nichts.

meine frage ist also: kann man arrays überhaupt returnen? wenn nicht wie könnte ich das anders lösen, wenn doch was hab ich falsch gemacht.

greetz b.

ps: die funktion wird includet falls das irgendwas ausmacht..

PHP:
function getTemplate($file)
 {
    $template = "";
    $fo       = fopen($file, "r");

    if($fo)
    {
        while(!feof($fo))
        {
        $row      = fgets($fo, 400);
        $template .= $row;
        }

    fclose($fo);

    $template = split("KONZENTRAT", $template);
    return $template;

    }
    else
    {
    exit("<b>Fehler beim Öffnen der Template Datei</b>");
    }
 }
 
sieht doch ganz gut aus.
arrays kann man in funktionen returnen, kein problem..
ich denk mal dein split macht mist und baut keinen array zusammen.
 
ne also das geht:

PHP:
<?php

function getTemplate($file)
{
    $template = "";
    $fo       = fopen($file, "r");

    if($fo)
    {
        while(!feof($fo))
        {
        $row      = fgets($fo, 400);
        $template .= $row;
        }

    fclose($fo);

    $template = split("KONZENTRAT", $template);
    echo $template[1];
    echo $template[0];

    }
    else
    {
    exit("<b>Fehler beim Öffnen der Template Datei</b>");
    }
    
}

    $file     = "code/test.htm";
    getTemplate($file);


?>

Wohingegen das hier nicht geht:

PHP:
<?php

function getTemplate($file)
{
    $template = "";
    $fo       = fopen($file, "r");

    if($fo)
    {
        while(!feof($fo))
        {
        $row      = fgets($fo, 400);
        $template .= $row;
        }

    fclose($fo);

    $template = split("KONZENTRAT", $template);
    return $template;

    }
    else
    {
    exit("<b>Fehler beim Öffnen der Template Datei</b>");
    }
    
}

    $file     = "code/test.htm";
    getTemplate($file);

    echo $template[0];
    echo $template[1];

?>

Also das Array mit dem template drin funktioniert wunderbar und ich kann es in der funktion benutzen.. nur wenn ich es mir return $template nach draussen geben will gehts nicht.
 
dann hast du das mit dem returnen von werten aus funktionen noch nicht verstanden ;)

ein return ist ein rueckgabewert der funktion und wenn der ins nirwana zurueckgegeben wird dann klappt natuerlich nicht.

PHP:
getTemplate($file);
echo $template[0];
echo $template[1];

woher soll getTemplate denn wissen welche variable zu fuellen ist ?
du musst dir mal ueber die namensraueme gedanken machen. in der funktion getTemplate sind keinerlei variablen aus dem umliegenden script bekannt, es sein denn die sind global, und genausowenig kann die funktion variablen aus dem namensraum des scriptes aendern, es sei denn durch einen rueckgabewert oder einer referenz.

so, genug gelabert ;)

so gehts:

PHP:
$template = getTemplate($file);
echo $template[0];
echo $template[1];
 
rcain.gif
boah sch€isse ich bin ja so ein idiot. klar klar. danke :)
 
Zurück