selbst mit global dürfte eine variable aus einer funktion nicht verfügbar sein, bin mir da aber aus dem stehgreif nicht sicher. mein vorschlag würde aber lauten:
function schreib($fp,$z) {
fwrite ($fp, $z);
}
if(isset($abschicken))
{
$filename = "quellcode.txt";
$fp = fopen ("$filename", "w+");
schreib($fp,"text");
}
noch ein paar anmerkungen dazu:
es macht keinen sinn die funktion den parameter zurückgeben zu lassen, der ihr übergeben wurde, das ist nur speicherverschwendung.
es macht auch keinen sinn dem rückgabewert von fwrite eine variable zuzuweisen, die nicht weiter verwendet wird, ebenso speicherverschwendung.
im ganzen verstehe ich auch nicht ganz den sinn nur einen fwrite in eine funktion zu verpacken, funktionen sollen eine funktionalität kapseln, nicht nur eine einzelne funktion (fwrite selbst ist eine funktion), dies ist auch ressourcenverschwendung.
sinnvoll wäre die ganze funktion zu kapseln in der form:
function write($cont='',$name='')
{
if($name==''||$cont==''){return false;}
$fp=@fopen("$name",'w+');
if(!$fp){return false;}
$fp=@fwrite($fp,"$cont");
if(!$fp){return false;}
return true;
}
if(!empty($abschicken))
{
$c=write($z,'quellcode.txt');
if(!$c)
{
echo 'Datei konnte nicht geschrieben werden';
}
}