tag:forum.selfhtml.org,2005:/selfSuche Debugger ;-) – SELFHTML-Forum2007-04-02T17:21:21Zhttps://forum.selfhtml.org/self/2007/apr/2/suche-debugger/1101829#m1101829PHP Flasche2007-04-02T12:27:22Z2007-04-02T12:27:22ZSuche 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#m1101835Phil Z.phil-z@online.de2007-04-02T12:34:04Z2007-04-02T12:34:04ZSuche 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#m1101830Tomtom@bitworks.dehttp://selfhtml.bitworks.de2007-04-02T13:04:05Z2007-04-02T13:04:05ZSuche 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#m1101831Tomtom@bitworks.dehttp://selfhtml.bitworks.de2007-04-02T13:12:45Z2007-04-02T13:12:45ZCall 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#m1101832Tomtom@bitworks.dehttp://selfhtml.bitworks.de2007-04-02T16:41:12Z2007-04-02T16:41:12ZCall 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#m1101833dedlfix2007-04-02T17:11:55Z2007-04-02T17:11:55ZCall 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#m1101834Tomtom@bitworks.dehttp://selfhtml.bitworks.de2007-04-02T17:21:21Z2007-04-02T17:21:21ZCall 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#m1101836PHP Flasche2007-04-02T12:42:07Z2007-04-02T12:42:07ZSuche 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#m1101837Phil Z.phil-z@online.de2007-04-02T12:45:06Z2007-04-02T12:45:06ZSuche Debugger ;-)<p>Achso.. dann solltest du das Kapitel noch einmal überarbeiten.</p>
<p>Meine Funktion hast du ja schon ...</p>