Ich bevorzuge in Python-Sprache zu programmieren, muss aber in PHP für ein bestimmtes Website-App-Projekt arbeiten.Return-Variable funktioniert nicht in PHP (d. H. Kein Wert zurückgegeben!)
In PHP versuche ich, einen Wert von einer Funktion an die Hauptprogrammumgebung "zurückzugeben" (für nachfolgende Berechnungen verwendet werden), aber egal was ich versuche, gibt der in meiner Funktion berechnete Wert den Wert nicht zurück (aber Echo von der Funktion funktioniert gut).
In Python hatte ich nie ein Problem mit der Rückgabe von Variablen: d. H. Alle von Funktionen zurückgegebenen Werte waren verfügbar und zugänglich für das Hauptprogramm und/oder andere Funktionen, die die Funktion aufgerufen haben, die den Rückgabewert erzeugt.
Kann mir bitte jemand sagen, wie ich dieses Problem lösen kann? Ich habe Google und Websites Ike Stackoverflow für die letzten 2 Tage ohne Erfolg gesucht. Ich habe viele O'Reilly-Computerbücher, darunter viele in PHP, wo ich meine Recherchen referenziert und alles gelesen habe, was ich über die RETURN-Funktion kann - es scheint, dass ich alles richtig mache und sogar den zurückzugebenden Wert ausdrücklich deklariere. Es ist entscheidend, dass ich Werte zurückgeben kann und Zugang zu diesen Werten habe, um mit der Entwicklung dieses Projekts fortzufahren - sonst stehe ich fest, wenn ich keine Werte zurückgeben kann, die weiterverarbeitet werden sollen !!
Hier ist der relevante Code Teile:
// DECLARE FUNCTIONS
// FUNCTION
function Calculation_IsArray ($ArrayAny){
if (is_array($ArrayAny)) {
echo '<div>THIS VAR IS AN ARRAY</div>';
$Var_IsArray = TRUE;
return $Var_IsArray;
} else {
echo '<div>THIS VAR IS **NOT** AN ARRAY</div>';
}
}
Nachdem die Funktionen erklärt und erste Berechnungen machen eine Anordnung zur Überprüfung zu packen, I die obige Funktion aufrufen, wie folgt:
// CALL FUNCTION
Calculation_IsArray($ArrayOfValues);
I Ich erwarte, dass das Programm die Funktion Calculation_IsArray() aufruft und übergibt es dem zu überprüfenden Array ($ ArrayOfValues). Sie können aus der Ausgabe unten sehen, dass das Array übergeben und überprüft und bestätigt wurde, dass es Array-Typ ist, und sowohl die FOREACH-Schleife als auch die IF/ELSE-Bedingungen funktionieren einwandfrei und geben die korrekte Ausgabe wieder. Der obige Code gibt jedoch keine Werte zurück, da Sie die NULL-Werte sehen können, die ausgegeben werden, wenn ich nach zurückgegebenen Werten (d. H. Dem geprüften Array), die vom Hauptprogramm nach der "Rückkehr" zugänglich sind.
Und hier sind die Ergebnisse Browser Bildschirm angezeigt (Ausgang):
THIS VAR ist ein Array
RETURNED ARRAY =
NULL
Wert von $ Var_IsArray =
NULL
GRAF VON ARRAY KEY ELEMENTS = 2
ARRAY SCHLÜSSELELEMENTE SIND NUMERISCH
KEY = 0, VALUE = Array
ZAHL DER ARRAY KEY EL ABSCHLUSS = 2
ARRAY Schlüsselelemente sind NUMERIC
KEY = 1, VALUE = Array
Ich habe hier bei Stackoverflow gesucht und gefunden Berichte von ähnlichen Problemen (und ich habe sogar versucht, diese Vorschläge für Lösungen zu testen, zum Beispiel Platzieren von Return an verschiedenen Stellen in meiner Funktion, um zu testen, wo es funktionieren würde), aber nichts funktioniert, und dieser Fehler zu Rückgabe Wert ist nicht logisch nach dem, was ich gelesen habe, dass PHP Werte zurückgibt, wenn expliciting sagte RETURN.
Vielen Dank für jede Hilfe in dieser Angelegenheit!
[Nach Vorlage der ursprünglichen Frage oben]:
ich jetzt versuche, mein Problem zu isolieren, indem ein Testskript namens TestReturn.php zu schaffen.
In diesem Skript habe ich den folgenden Code platziert, aber es gibt immer noch keinen Wert zurückgegeben !!
// DECLARE FUNCTIONS
// FUNCTION
function Calculation_IsArray ($ArrayAny){
if (is_array($ArrayAny)) {
echo '<div>THIS VAR IS AN ARRAY</div>';
$Var_IsArray = TRUE;
return $Var_IsArray;
} else {
echo '<div>THIS VAR IS **NOT** AN ARRAY</div>';
}
}
// BEGIN MAIN PROGRAM
$x = array(1, 2, 3, 4, 5, 6, 7);
Calculation_IsArray($x);
// COME BACK TO HERE AFTER THE FUNCTION RETURNS CALCULATED VALUE
echo '<div>HERE IS THE RETURNED VALUE AND VAR_DUMP BELOW:' . $Var_IsArray . '</div>';
var_dump($Var_IsArray);
Und hier ist die Ausgabe in HTML-Browser-Tab/Fenster/Terminal:
THIS VAR ist ein Array
hier ist der zurückgegebene Wert UND Var_dump UNTEN:
NULL
"Captain, das rechnet nicht!", Dh das macht für mich keinen Sinn, warum PHP meinen Wert nicht zurückgibt, dass ich ihm ausdrücklich sage, dass er zum Hauptprogramm zurückkehren soll!
Ich habe alle Möglichkeiten der Codierung einschließlich versucht:
return $variable;
return ($variable);
return() ; // i.e. I read somewhere that PHP by default returns the last calculated value in a function.
return ;
Warum ist Hauptprogramm PHP Rückkehr nicht mein Wert/Variable zurück?
Warum nicht false zurück im else-Block? – SOFe
Es wäre hilfreich, wenn Sie den Code schreiben könnten, der versucht, den zurückgegebenen Wert zu verwenden. –
Danke, Freunde! Nachdem ich den ursprünglichen Beitrag gepostet hatte, ging ich zurück und testete einige Tests und aktualisierte den Post hier mit vereinfachtem Code, der versucht, den zurückgegebenen Wert hier für euch zu verwenden, um den vollständigen isolierten Code des Problems zu kopieren und einzufügen. Ich habe versucht, die Rückkehr falsch zu verwenden, aber standardmäßig PHP (ich lese) gibt false/NULL zurück. –