function(): Variable übergeben und ausgeben
Marc2
- php
Hallo,
ich habe folgendes Beispiel gebastelt, um function() auszuprobieren...
Ich möchte mehrere Zahlen der Funktion "berechnung" übergeben.
Die Funktion soll dann mehrere Ergebnisse liefern.
Diese werden dann der Funktion "ausgabe" übergeben.
Leider kommen keine Daten an... ????
Wer kann den Quelltext verbessern? :)
Marc
--- Quelltext: ---
<html>
<head>
<title>Test</title>
</head>
<body>
<?php
$zahl1 = 150;
$zahl2 = 50;
berechnung($zahl1, $zahl2);
ausgabe($zahl1, $zahl2, $ergebnis1, $ergebnis2);
function berechnung($zahl1, $zahl2) {
return $ergebnis1 = $zahl1-$zahl2; // test mit return
$ergebnis2 = $zahl1+$zahl2;
}
function ausgabe($zahl1, $zahl2, $ergebnis1, $ergebnis2) {
echo "Zahl1: " . $zahl1 . "<br>\n";
echo "Zahl2: " . $zahl2 . "<br>\n";
echo "Ergebnis1: " . $ergebnis1 . "<br>\n";
echo "Ergebnis2: " . $ergebnis2 . "<br>\n";
}
?>
</body>
</html>
--- Ausgabe: ---
Zahl1: 150
Zahl2: 50
Ergebnis1: 0
Ergebnis2: 0
hi,
Ich möchte mehrere Zahlen der Funktion "berechnung" übergeben.
sollte kein problem sein.
Die Funktion soll dann mehrere Ergebnisse liefern.
eine funktion kann immer nur _einen_ rückgabeparameter haben.
Zahl1: 150
Zahl2: 50
Ergebnis1: 0
Ergebnis2: 0
wenig überraschend.
deine funktion berechnung() gibt zwar ein ergebnis zurück, aber dieses wertest du ja gar nicht aus, wenn du die funktion mit
berechnung($zahl1, $zahl2);
aufrufst.
$variable = berechnung($zahl1, $zahl2);
beispielsweise würde den rückgabewert in $variable ablegen, so dass du deren wert anschliessend ausgeben kannst.
ausgabe($zahl1, $zahl2, $ergebnis1, $ergebnis2);
in deinem script gibt es zum zeitpunkt dieses aufrufs weder eine variable $ergebnis1 noch eine $ergebnis2.
dass deine ausgabefunktion also für diese beiden parameter 0 ausgibt, ist noch sehr gnädig. bei entsprechend scharf eingestellten error reporting [1] hättest du bereits vorher entsprechende warnungen bekommen müssen.
ich schlage vor, dass du dir http://www.php.net/manual/de/functions.php und http://www.php.net/manual/de/language.variables.scope.php erst noch mal _gründlich_ durchliest, denn dir fehlt da eindeutig grundlagenwissen.
gruß,
wahsaga
[1] http://de3.php.net/manual/de/function.error-reporting.php
ja, das sollte man "scharf" stellen, damit einem auch warnings und notices anzeigt werden, denn nur so kann man flüchtigkeitsfehler vermeiden und sauber programmieren.
Hi,
eine funktion kann immer nur _einen_ rückgabeparameter haben.
nicht gewußt...
error reporting
hatte ich vergessen :)
... dir fehlt da eindeutig grundlagenwissen.
ist mir bekannt
wo finde ich eine einfache und aktuelle (!) php anleitung? (außer php.net oder googeln...)
Danke.
Marc
--- neuer Quelltext ---
...
<?php
error_reporting(E_ALL);
$zahl1 = 150;
$zahl2 = 50;
list ($ergebnis1, $ergebnis2) = berechnung($zahl1, $zahl2); // berechnung noetige daten uebergeben und rueckgabe array erg.1+2 zuweisen
ausgabe($zahl1, $zahl2, $ergebnis1, $ergebnis2); // alle noetigen daten an funktion uebergeben
function berechnung($zahl1, $zahl2) {
$ergebnis1 = $zahl1 - $zahl2;
$ergebnis2 = $zahl1 + $zahl2;
return array ($ergebnis1, $ergebnis2); // funktion gibt nur einen wert zurueck... daher array-nutzung noetig
}
function ausgabe($zahl1, $zahl2, $ergebnis1, $ergebnis2) {
echo "Zahl1: " . $zahl1 . "<br>\n";
echo "Zahl2: " . $zahl2 . "<br>\n";
echo "Ergebnis1: " . $ergebnis1 . "<br>\n";
echo "Ergebnis2: " . $ergebnis2 . "\n";
}
?>
...
--- Ausgabe ---
Zahl1: 150
Zahl2: 50
Ergebnis1: 100
Ergebnis2: 200
hi,
wo finde ich eine einfache und aktuelle (!) php anleitung? (außer php.net oder googeln...)
http://www.schattenbaum.net/php/ ist eigentlich ganz gut, aber nicht mehr allzu aktuell, insb. was sachen wie register_globals angeht.
ansonsten ist http://tut.php-q.net/ recht empfehlenswert.
http://dclp-faq.de/ hilft bei vielen häufig in der (anfänger-) praxis auftauchenden fragen weiter.
gruß,
wahsaga