Frage zu Unterfunktion in Funktionen bzgl. global

mammuteffect

Mitglied
Hallo, ich habe ein kleines Problem.
Ich habe zwei Funktionen, zur Vereinfachung mal func1 und func2 genannt.
Func2 ist Bestandteil von func1 (quasi eine Unterfunktion).
Das Ergebnis von func2 (erg1) habe ich als globale Variable gesetzt und will nun im weiteren Verlauf von func1 erg1 nutzen. Das scheint aber nicht zu funktionieren.

Dargestellt sieht es ungefähr so aus:

PHP:
func1
    {
    func2
        {
        erg1
        }
    erg = erg1;
    }
Und erg ergibt dann also nicht erg1 sondern bleibt leer.
Wo liegt der Fehler? Wie ist es zu lösen?

Vielen, vielen Dank schonmal!
 
Verschachtelte Funktionen? Selbst wenn das gehen sollte, wozu?

Abgesehen davon müsste in jeder Funktion die Variable global gesetzt werden.
 
Funktionen haben jeweils nur einen Ein- und Ausgabeweg: einmal die Parameter der Funktion und der Rückgabewert der Funktion. Du müsstest also den verarbeiteten Wert aus „func2“ als Rückgabewert angeben:
PHP:
function func1($var)
{
	function func2($var)
	{
		$retVal = $var + 1;
		return $retVal;
	}
	$retVal = func2($var);
	$retVal * 2;
	return $retVal;
}
Der Sinn eines solchen Konstrukts ist natürlich immer fraglich.
 
Funktionen werden eigentlich dafür eingesetzt, um wiederkehrende Algorithmen abzubilden und diese universell einsetzbar zu machen.
 
Habe mich vielleicht etwas verkehrt ausgedrückt. Also Funktion1 greift auf Funktion2 zu, die aber an anderer Stelle definiert ist. Also Funktion2 kommt nicht ausschließlich in Funktion1 vor. Das ist denke ich das, was du meintest.

Um nicht einen neuen Thread aufzumachen noch eine kleine Frage:
Kannst du mir ein Programm empfehlen, dass den PHP-Code schön darstellt, also formatiert (solche Dinger haben auch einen Namen, ich weiß, aber den habe ich vergessen :)).
Ich schreibe im Moment im Editor, aber da wird ja nichts eingefärbt oder eingerückt, was es etwas unübersichtlich macht.
 
Zurück