tag:forum.selfhtml.org,2005:/self Suche Debugger ;-) – SELFHTML-Forum 2007-04-02T17:21:21Z https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101829#m1101829 PHP Flasche 2007-04-02T12:27:22Z 2007-04-02T12:27:22Z Suche Debugger ;-) <p>Hallo zusammen.</p> <p>Ich muss ein PHP programm mit einer selbst definierten Funktion schreiben, daie dass Ergebniss ueber die Parameterliste zurueckgeben soll (Ergebniss 1 = Parameter1*Parameter2 / Ergebniss 2 = Parameter1 + Parameter2). Zusaetzlich sollen alle beteiligten Zahlen ausserhalb der Funktion ausgegeben werden.</p> <p>Ich habe mir folgenden Code ueberlegt:</p> <p><html><br> <head><br> <?php</p> <p>function rechnet($b, $n)<br> {<br> $b*$n= $f;<br> $b-$n= $d;</p> <p>$f = $b;<br> $d = $n;<br> }</p> <p>?><br> </head><br> <body></p> <p><?php</p> <p>$q= 5;<br>   $w= 7;<br> echo "vorher: $q, $w <br />";<br> rechnet(&$q,&$w);<br> echo "nachher: $q, $w";</p> <p>?></p> <p></body><br> </html></p> <p>doch funktioniert er leider nicht :-(</p> <p>Hat jemand eine Idee, warum nicht???? Danke!!!</p> https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101835#m1101835 Phil Z. phil-z@online.de 2007-04-02T12:34:04Z 2007-04-02T12:34:04Z Suche Debugger ;-) <p>Hallo.</p> <blockquote> <p>Ergebniss 1 = Parameter1*Parameter2<br> Ergebniss 2 = Parameter1 + Parameter2)</p> </blockquote> <p>Warum rechnest du dann "-"? Siehe unten:</p> <blockquote> <p>$b-$n= $d;</p> </blockquote> <p>Naja versuchsmal so:</p> <p><?php<br> function rechnet($b, $n)<br> {<br> $f = $b*$n<br> $d = $b-$n<br> return $f, $d;<br> }<br> ?></p> <blockquote> <p>rechnet(&$q,&$w);</p> </blockquote> <p>Wozu diese "&"?</p> <p>rechnet($q,$w);</p> <p>reicht.<br> mfg</p> <p>Phil Z.</p> https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101830#m1101830 Tom tom@bitworks.de http://selfhtml.bitworks.de 2007-04-02T13:04:05Z 2007-04-02T13:04:05Z Suche Debugger ;-) <p>Hello,</p> <p>Ich muss ein PHP Programm mit einer selbst definierten Funktion schreiben.<br> Das Ergebnisssoll ueber die Parameterliste zurueckgeben werden.</p> <p>Ergebniss 1 = Parameter1 * Parameter2<br>    Ergebniss 2 = Parameter1 + Parameter2</p> <p>Zusaetzlich sollen alle beteiligten Zahlen ausserhalb der Funktion ausgegeben werden.</p> <blockquote> <p>function rechnet($b, $n, &ergebnis1, &$ergebnis2)</p> </blockquote> <p>{<br>     $ergebnis1 = $b*$n;          ## Ergebnisse stehen immer links von der Zuweisung<br>     $ergebnis2 = $b+$n;<br>   )</p> <p>echo "vorher: $q, $w <br />";<br>   rechnet($q,$w,$ergebnis1, $ergebnis2);<br>   echo "nachher: $ergebnis1, $ergebnis2";</p> <p>So sollte es beispielsweise klappen.<br> Um die Funktionsargumente in beide Richtungen benutzen zu können, muss man sie auch entsprechend deklarieren. Das macht man üblicherweise bei der Funktionsdefinition und nicht bei der Benutzung.</p> <p>Harzliche Grüße vom Berg<br> <a href="http://www.annerschbarrich.de" rel="nofollow noopener noreferrer">http://www.annerschbarrich.de</a></p> <p>Tom</p> <div class="signature">-- <br> Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen<br> Nur selber lernen macht schlau<br> <img src="http://bitworks.de/~selfHTML/Virencheck.gif" alt="" loading="lazy"><br> </div> https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101831#m1101831 Tom tom@bitworks.de http://selfhtml.bitworks.de 2007-04-02T13:12:45Z 2007-04-02T13:12:45Z Call by Reference <p>Hello,</p> <blockquote> <p>Um die Funktionsargumente in beide Richtungen benutzen zu können, muss man sie auch entsprechend deklarieren. Das macht man üblicherweise bei der Funktionsdefinition und nicht bei der Benutzung.</p> </blockquote> <p><a href="http://www.php.net/manual/en/functions.arguments.php" rel="nofollow noopener noreferrer">http://www.php.net/manual/en/functions.arguments.php</a></p> <p>Das ist etwas schwabbelig ausgedrückt im Manual. Sollte das bei PHP ggf. auch möglich sein, Funktionsaufrufe nur temporär für Call by Refenence zu verwenden, indem man das & erst beim Aufruf verwendet? Ich kann es im Moment leider nicht selber ausprobieren.</p> <p>Harzliche Grüße vom Berg<br> <a href="http://www.annerschbarrich.de" rel="nofollow noopener noreferrer">http://www.annerschbarrich.de</a></p> <p>Tom</p> <div class="signature">-- <br> Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen<br> Nur selber lernen macht schlau<br> <img src="http://bitworks.de/~selfHTML/Virencheck.gif" alt="" loading="lazy"><br> </div> https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101832#m1101832 Tom tom@bitworks.de http://selfhtml.bitworks.de 2007-04-02T16:41:12Z 2007-04-02T16:41:12Z Call by Reference <p>Hello,</p> <blockquote> <p><a href="http://www.php.net/manual/en/functions.arguments.php" rel="nofollow noopener noreferrer">http://www.php.net/manual/en/functions.arguments.php</a></p> <p>Das ist etwas schwabbelig ausgedrückt im Manual. Sollte das bei PHP ggf. auch möglich sein, Funktionsaufrufe nur temporär für Call by Refenence zu verwenden, indem man das & erst beim Aufruf verwendet? Ich kann es im Moment leider nicht selber ausprobieren.</p> </blockquote> <p>Ok, ausprobiert:</p> <p><?php   ### reference.php ###</p> <p>function rechne($b, $n, &$ergebnis1, &$ergebnis2)<br>   {<br>     $ergebnis1 = $b*$n;          ## Ergebnisse stehen immer links von der Zuweisung!<br>     $ergebnis2 = $b+$n;<br>     $b = $ergebnis1;<br>     $n = $ergebnis2;<br>   }</p> <p>$q=7;<br>   $w=5;</p> <p>echo "vorher: $q, $w <br />";                 ## liefert 7 ,5<br>   rechne($q,$w,$ergebnis1, $ergebnis2);<br>   echo "nachher: q = $q, w = $w <br>";          ## liefert q = 7, w = 5<br>   echo "nachher: $ergebnis1, $ergebnis2 <br>";  ## liefert 35, 12</p> <p>echo "vorher: $q, $w <br />";                 ## liefert 7, 5<br>   rechne(&$q,&$w,$ergebnis1, $ergebnis2);<br>   echo "nachher: $q, $w <br>";                  ## liefert 35, 12</p> <p>?></p> <p>Erinnerung aufgefrischt:<br> Man kann also in PHP den Call by Reference auch temporär verwenden, indem man die Funktion erst beim Aufruf dazu veranlasst, "den Rückweg zu öffnen"...</p> <p>Harzliche Grüße vom Berg<br> <a href="http://www.annerschbarrich.de" rel="nofollow noopener noreferrer">http://www.annerschbarrich.de</a></p> <p>Tom</p> <div class="signature">-- <br> Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen<br> Nur selber lernen macht schlau<br> <img src="http://bitworks.de/~selfHTML/Virencheck.gif" alt="" loading="lazy"><br> </div> https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101833#m1101833 dedlfix 2007-04-02T17:11:55Z 2007-04-02T17:11:55Z Call by Reference <p>echo $begrüßung;</p> <blockquote> <p>Man kann also in PHP den Call by Reference auch temporär verwenden, indem man die Funktion erst beim Aufruf dazu veranlasst, "den Rückweg zu öffnen"...</p> </blockquote> <p>Vorausgesetzt, man verwendet die missbilligte Einstellung <a href="http://de.php.net/manual/en/ini.core.php#ini.allow-call-time-pass-reference" rel="nofollow noopener noreferrer">allow_call_time_pass_reference</a>.</p> <p>echo "$verabschiedung $name";</p> https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101834#m1101834 Tom tom@bitworks.de http://selfhtml.bitworks.de 2007-04-02T17:21:21Z 2007-04-02T17:21:21Z Call by Reference <p>Hello,</p> <blockquote> <blockquote> <p>Man kann also in PHP den Call by Reference auch temporär verwenden, indem man die Funktion erst beim Aufruf dazu veranlasst, "den Rückweg zu öffnen"...</p> </blockquote> <p>Vorausgesetzt, man verwendet die missbilligte Einstellung <a href="http://de.php.net/manual/en/ini.core.php#ini.allow-call-time-pass-reference" rel="nofollow noopener noreferrer">allow_call_time_pass_reference</a>.</p> </blockquote> <p>Ach,<br> sowas ähnliches hatte ich im Hinterhirn, aber nicht wiedergefunden vorhin.<br> Sollte man eigentlich sicherheitshalber (Programmierfehler) lieber ausschalten, oder?</p> <p>Harzliche Grüße vom Berg<br> <a href="http://www.annerschbarrich.de" rel="nofollow noopener noreferrer">http://www.annerschbarrich.de</a></p> <p>Tom</p> <div class="signature">-- <br> Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen<br> Nur selber lernen macht schlau<br> <img src="http://bitworks.de/~selfHTML/Virencheck.gif" alt="" loading="lazy"><br> </div> https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101836#m1101836 PHP Flasche 2007-04-02T12:42:07Z 2007-04-02T12:42:07Z Suche Debugger ;-) <p>Wozu diese "&"?</p> <p>Du musst wisse, ich bin gerade dabei mir PHP ueber ein buch anzulesen und in dem sind Aufgaben drin, um zu pruefen, ob man das Kapitel verstanden hat. In diesem Kapitel ging es um call-by-reference Uebergaben bei Funktionen. Der return Befehl, wurde schon im vorherigen Kapitel erklaert, weshalb ich ihn nicht verwenden darf. Das & diehnt einfach dazu das sich die Orginalvariable, aendert, wenn sich die zugehoerige Variable in der Funktion aendert.</p> <p>MFG</p> https://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101837#m1101837 Phil Z. phil-z@online.de 2007-04-02T12:45:06Z 2007-04-02T12:45:06Z Suche Debugger ;-) <p>Achso.. dann solltest du das Kapitel noch einmal überarbeiten.</p> <p>Meine Funktion hast du ja schon ...</p>