Guten [Tageszeit],
Hi, Forumler,
habe aus einigen Zeilen Programmcode eine Funktion gemacht, da diese Zeilen mehrfach benötigt werden. Zu meiner Überraschung sind innerhalb der Funktion jedoch globale Variablen nicht bekannt.
$aus = "Ausgabe";
echo " 1.".$aus;function machwas ( $abc ) // <--- schau mal hin, was Du als Argument übergeben hast.
{
echo " 2.".$aus;
}machwas ( "irgendwas" );
echo " 3.".$aus."<br>";ERGEBNIS:
1.Ausgabe 2. 3.AusgabeDie 2.Ausgabe fehlt. Warum ?
in der Tat, normale globale Variablen sind in der Funktion nicht bekannt. Dazu muss man sie innerhalb der Funktion mit global übernehmen. Du hast hier aber ein Argument an die Prozedur übergeben. Das ist ein Call-by-Value, den Du da machst. Also eine Kopie von $abc wird an die Funktion übergeben und gar nicht beutzt. Vielmehr versuchst Du in der Funktion $aus auszugeben, das aber nicht übergeben wurde.
Schon dumm gelaufen, gelle?
Liebe Grüße aus http://www.braunschweig.de
Tom
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.