Hallo Miteinander
Sowie ich das mitbekommen habe müssen Funktionen so klein wie möglich, aber daher viele davon erstellt werden. Sodass praktisch eine Funktion nur etwas macht.
Bei Meinem Beispiel (Funktionen für die Berechnung von Brutto/Netto/MwSt Beträge, dann Rundungen) könnte man vielleicht noch mehr aussplitten, aber ich habe es im Moment auf 4 Funktionen Belassen.
Zum Problem:
Die Funktionen funktionieren Problemlos wenn ich keine Verschachtelung mache. Nach jeder Funktion returne ich das 'Zwischenergebnis' und kann sie somit als Parameter an die weitere Funktion weitergeben. Aber diese Lösung gefällt mir nicht, mir wurde schon Verschachtelung empfohlen.
So sieht meine Verschachtelung aus:
Formular:
Schon bei der Übergabe von $betrag_trmd auf die zweite Funktion kommt diese Fehlermeldung:
Also als ob diese 2 Variabeln nicht definiert sind, obwohl sie gleich oberhalb der zweiten Funktion eigentlich erzeugt werden. Vor dem Anfang der zweiten verschachtelten Funktion kann ich diese Variabeln problemlos ausgeben, aber warum kann ich diese nicht als Parameter weiter übergeben?
Was mache ich falsch?
Danke schon im Voraus für die Antworten! :-)
Sowie ich das mitbekommen habe müssen Funktionen so klein wie möglich, aber daher viele davon erstellt werden. Sodass praktisch eine Funktion nur etwas macht.
Bei Meinem Beispiel (Funktionen für die Berechnung von Brutto/Netto/MwSt Beträge, dann Rundungen) könnte man vielleicht noch mehr aussplitten, aber ich habe es im Moment auf 4 Funktionen Belassen.
Zum Problem:
Die Funktionen funktionieren Problemlos wenn ich keine Verschachtelung mache. Nach jeder Funktion returne ich das 'Zwischenergebnis' und kann sie somit als Parameter an die weitere Funktion weitergeben. Aber diese Lösung gefällt mir nicht, mir wurde schon Verschachtelung empfohlen.
So sieht meine Verschachtelung aus:
PHP Code:
<?php
// KONSTANTE
define('MWST', 0.076);
(!isset($_POST['betrag'])) ? $betrag = '' : $betrag = $_POST['betrag'];
(!isset($_POST['was'])) ? $was_ausrechnen = '' : $was_ausrechnen = $_POST['was'];
function filter_data($betrag, $was_ausrechnen, $striptags = true) {
if (get_magic_quotes_gpc()) {
$betrag = stripslashes($betrag);
$was_ausrechnen = stripslashes($was_ausrechnen);
}
if ($striptags === true) {
$betrag_fltrd = strip_tags($betrag);
$was_ausrechnen_fltrd = strip_tags($was_ausrechnen);
}
$betrag_trmd = trim(htmlspecialchars($betrag_fltrd));
$was_ausrechnen_trmd = trim(htmlspecialchars($was_ausrechnen_fltrd));
$form_eingaben = array($betrag_trmd, $was_ausrechnen_trmd);
function mwst_berechnung_brutto_netto($betrag_trmd, $was_ausrechnen_trmd) {
if ('brutto' == $was_ausrechnen_trmd) {
$ergebnis_bn = $betrag_trmd + ($betrag_trmd * MWST);
$anteil_mwst = $ergebnis_bn - $betrag_trmd;
} else if ('netto' == $was_ausrechnen_trmd) {
$ergebnis_bn = $betrag_trmd / (MWST + 1);
$anteil_mwst = $betrag_trmd - $ergebnis_bn;
function mwst_berechnung_rundung_5rp($ergebnis_bn) {
$betrag_fltrd_gerundet_5rp = round(2 * $ergebnis_bn, 1) / 2;
$ergebnis_bn_5rp2dez = number_format($betrag_fltrd_gerundet_5rp, 2, ',', '');
function mwst_berechnung_ausgabe($ergebnis_bn_5rp2dez, $problem_felder) {
if (isset ($problem_felder[0]) ||
0 == $ergebnis_bn_5rp2dez) {
$ergebnis_ausgabe = '';
} else {
$ergebnis_ausgabe = 'Ergebnis: ' . $ergebnis_bn_5rp2dez;
}
return $ergebnis_ausgabe;
}
return $ergebnis_bn_5rp2dez;
}
return $ergebnis_bn;
}
}
return $form_eingaben;
}
PHP Code:
<?php
require_once('function_mwst.php');
?>
<form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<label for="betrag"<?php if(in_array('betrag', $problem_felder)) {echo ' style="color: red;"';} ?>>Betrag *</label>
<input type="betrag" id="betrag" name="betrag" value="<?php echo $betrag; ?>" /> <span>(Nur Zahlen, max. 15 Zahlen)</span><br />
<label for="was">Was ausrechnen?</label>
<select id="was" name="was">
<option value="brutto" <?php echo ('brutto' == $was_ausrechnen) ? 'selected="selected"' : '';?>>Brutto</option>
<option value="netto" <?php echo ('netto' == $was_ausrechnen) ? 'selected="selected"' : '';?>>Netto</option>
</select><br />
<label for="send">Absenden</label>
<input id="send" type="submit" name="send" value="Klick" />
</form>
<?php
filter_data($betrag, $was_ausrechnen, $striptags = true);
mwst_berechnung_brutto_netto($betrag_trmd, $was_ausrechnen_trmd);
//mwst_berechnung_rundung_5rp($ergebnis_bn);
//echo mwst_berechnung_ausgabe($ergebnis_bn_5rp2dez, $problem_felder);
?>
Notice: Undefined variable: betrag_trmd in [...]/mwst_form.php on line 26 Notice: Undefined variable: was_ausrechnen_trmd in [...]/mwst_form.php on line 26
Was mache ich falsch?
Danke schon im Voraus für die Antworten! :-)
Comment