Export funktioniert nicht (von einer aufgerufenen Funktion, um das Echo zu erhalten)

8

Ich habe einen Code wie folgt:

%Vor%

Leider wird die Variable ABC nicht gesetzt.

Ich muss test_this so aufrufen, da ich in meinem realen Programm einige Argumente dafür gebe, verschiedene komplizierte Operationen ausführt, die verschiedene andere Funktionen aufrufen, die auf dem Weg dieses oder jenes exportieren (basierend auf diesen Argumenten), und am Ende wird eine Ausgabe-Zeichenfolge zusammengestellt, um zurückgegeben zu werden. Es zweimal aufrufen, einmal, um Exporte und einmal für die Ausgabezeichenfolge zu erhalten, wäre schlecht.

Die Frage ist: Was kann ich tun, um sowohl die Exporte als auch die Ausgabezeichenfolge zu haben, aber nur durch einen Aufruf an eine solche Funktion?

Die Antwort, mit der ich zufrieden bin (danke paxdiablo):

%Vor%     
robert 18.10.2011, 00:17
quelle

1 Antwort

7

Ja, es wird gesetzt. Leider wird es im Unterprozess festgelegt, der von $() erstellt wird, um die Funktion test_this auszuführen, und hat keine Auswirkungen auf den übergeordneten Prozess.

Und es zweimal aufrufen ist wahrscheinlich die einfachste Weise, es zu tun, etwas wie (mit einem "geheimen" Parameterwert, um Verhalten zu diktieren, wenn es anders sein muss):

%Vor%

welche Ausgaben:

%Vor%

Wenn Sie wirklich nur einmal aufrufen möchten, können Sie Folgendes tun:

%Vor%

Verwenden Sie mit anderen Worten die gleiche Methode zum Extrahieren der Ausgabe wie für die anderen Informationen.

    
paxdiablo 18.10.2011, 00:21
quelle

Tags und Links