php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.01.2006, 13:47  
Gast
 
Beiträge: n/a
Standard Call_user_func

Hallo,
wir fangen jetzt in der Schule mit PHP an und ich hab ein kleines Problem bei einem Zinsen-Skript. Es gibt drei Eingabefelder, eins mit dem Betrag, eins mit dem Prozentsatz vom Betrag und eins wo die Tage angegeben werden, wie lang der Prozentsatz gilt.
Heißt: Jeden Tag wird der Zinssatz mit dem original Betrag summiert, am nächsten wird dann von der neuen Summe, der Zinssatz gezogen, usw.

Mein Skript dazu:
Code:
<?php
  echo "Betrag: " . $betrag . "
";
  echo "Prozent: " . $prozent . "
";
  echo "Tage: " . $tage . "
";

  $ergebnis = $betrag;

  function zinsen($prozent,$ergebnis,$zins,$x){
    for($x=1;$x=$tage;$x++){
       $zins = (($ergebnis/100)*$prozent);
       $ergebnis = $ergebnis + $zins;
    }
  }

  call_user_func("zinsen",$prozent,$ergebnis,$zins,$x);
  echo "Ergebnis: " . $ergebnis;
?>
Die Variablen werden mir angezeigt, doch irgendwie wird die function nicht ausgeführt, da $ergebnis immer gleich zu $betrag bleibt. Kann mir da jemand weiterhelfen?

Grüße,
LeonDerProfi
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.01.2006, 14:02  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

mach anstelle von call_user_func mal einfach zinsen. so:

zinsen($prozent,$ergebnis,$zins,$x);

Eine Funktion sollte auch einen return Wert haben..
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 27.01.2006, 14:21  
Gast
 
Beiträge: n/a
Standard

Ich hab jetzt folgenden Code, aber es funktioniert immer noch nicht, als Ergebnis krieg ich nur den Inhalt von $betrag. Ist der Code ansonsten richtig?

PHP-Code:
<?php
  
echo "Betrag: " $betrag "
"
;
  echo 
"Prozent: " $prozent "
"
;
  echo 
"Tage: " $tage "
"
;

  
$ergebnis $betrag;

  function 
zinsen($prozent,$ergebnis,$zins,$x){
    for(
$x=1;$x=$tage;$x++){
       
$zins = (($ergebnis/100)*$prozent);
       
$ergebnis $ergebnis $zins;
    }
  }

  
zinsen($prozent,$ergebnis,$zins,$x);
  echo 
"Ergebnis: " $ergebnis;
?>
 
Alt 27.01.2006, 14:23  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

return!
DER_Brain ist offline  
Alt 27.01.2006, 14:29  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

du musst einen Return wert definieren.

und dein script läuft nur wenn register_globals = on sind, was nicht wirklich gut ist
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 27.01.2006, 18:22  
Gast
 
Beiträge: n/a
Standard

ja blöde frage, aber wie mach ich das mit dem return-wert?
ich habs jetzt so eingebaut, aber es hat sich nichts verändert, $ergebnis bleibt immer gleich zu $betrag.

PHP-Code:
<?php 
  
function zinsen($prozent,$ergebnis,$zins,$x){
    for(
$x=1;$x=$tage;$x++){
       
$zins = (($ergebnis/100)*$prozent);
       
$ergebnis $ergebnis $zins;
    }
    RETURN 
$ergebnis;
  }

  echo 
"Ergebnis: " zinsen($prozent,$ergebnis,$zins,$x);


?>
 
Alt 27.01.2006, 19:18  
XLB
Erfahrener Benutzer
 
Registriert seit: 31.07.2005
Beiträge: 1.126
PHP-Kenntnisse:
Fortgeschritten
XLB
Standard

Wozu dienen die Parameter $zins und $x ? Diese Werte ergeben sich innerhalb der Funktion und müssen nicht übergeben werden. Sinnvoll wären doch Parameter wie "Startbetrag", "Zinssatz" (ist wahrscheinlich mit $zins gemeint) und "Laufzeit" ...?

Ist das dein ganzer Code? Wo hast du mit konkreten Zahlen gearbeitet ? Da gibt's doch bestimmt ein entsprechendes Formular, von dem die Werte kommen ? Respektive: Woher kommen die Variablen/Werte beim Funktionsaufruf :

PHP-Code:
   zinsen($prozent,$ergebnis,$zins,$x); 
...?

Deine FOR-Schleife kann so net funzen : for($x=1;$x=$tage;$x++)

Hier ist ein Vergleichsoperator (== oder <=) von nöten, kein Zuweisungsoperator (=)

Hilft die das erstmal weiter ...?
XLB ist offline  
Alt 27.01.2006, 19:45  
Gast
 
Beiträge: n/a
Standard

ja hab ein Formular dazu mit HTML erstellt, da stimmt aber alles denk ich.

Code:
<form action="calluserfunc.php" method="get">
<table>
 <tr>
  <td>Betrag:</td>
  <td><input type="text" name="betrag" size="40" maxlength="30"></td>
 </tr>
 <tr>
  <td>Prozent:</td>
  <td><input type="text" name="prozent" size="40" maxlength="30"></td>
 </tr>
 <tr>
  <td>Tage:</td>
  <td><input type="text" name="tage" size="40" maxlength="30"></td>
 </tr>
 <tr>
  <td><input type="submit" value="Absenden"></td>
 </tr>
</table>

Und zu den Variablen:
$zins = Zinssatz
$betrag = Startbetrag
$tage = Laufzeit

Habe jetzt den Operator == genommen, aber hat nichts verändert.
 
Alt 27.01.2006, 19:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
PHP-Code:
<?php
 
function zinsen($prozent,$ergebnis,$zins,$x){
    for(
$x=1;$x=$tage;$x++){
       
$zins = (($ergebnis/100)*$prozent);
       
$ergebnis $ergebnis $zins;
    }
    RETURN 
$ergebnis;
  }
?>
$x brauchst du an die Funktion nicht übergeben, denn in der for-Schleife wird $x sowieso von dir überschrieben.
http://de3.php.net/manual/de/control-structures.for.php
Zergling-new ist offline  
Alt 27.01.2006, 20:09  
Gast
 
Beiträge: n/a
Standard

ok, aber das ändert leider noch nichts an meinem Problem, mein Code sieht jetzt folgendermaßen aus, was ist denn daran noch falsch???

PHP-Code:
<?php
  
echo "Betrag: " $betrag "
"
;
  echo 
"Prozent: " $prozent "
"
;
  echo 
"Tage: " $tage "
"
;

  
$ergebnis $betrag;

 function 
zinsen($prozent,$ergebnis,$zins){ 
    for(
$x=1;$x==$tage;$x++){ 
       
$zins = (($ergebnis/100)*$prozent); 
       
$ergebnis $ergebnis $zins
    } 
    RETURN 
$ergebnis;
  } 

  
zinsen($prozent,$ergebnis,$zins); 
  echo 
"Ergebnis: " $ergebnis;
?>
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\call_user_func\ php wozu

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.