[PHP] Parameter-Passing klappt nicht ?!?

  • Hi,
    Ich sitz hier mal wieder for etwas sehr misteriösem...
    Ich habe da 2 Funktionen:

    PHP
    function percent($what, $of) {
        if ($of==0) $of=100;
        $all=100/$of;
        return $what*$all;
    }
    function pVal ($per, $all) {
        //echo "per:".$per.", all:".$all;
        $all=$all/100;
        return $per*$all;
    }

    percent(); dient dazu, den prozentwert, den $what an $of hat, zu berechnen. Funktioniert (echo percent(10, 200) gibt 5).
    pVal dient dazu, den Prozentalen wert von $per in $all zu berechnen. Funktioniert auh (echo pVal(25, 200) gibt 50).
    wenn ich jetzt das Kommentar in pVal() in eine Codezeile verwandle, ist die Ausgabe bei pVal(25, 200):

    Code
    per:25, all:200

    Dann zum einsatz des Ganzen:

    PHP
    $p=percent($erg['ticks'], $ppl);
    $content.="<div class=\"voting_question\" title=\"".$erg['question']."\" style=\"width: ".pVal($p, 200)."px;\"></div>";

    Und die ausgabe ist:

    Code
    per:411, all:211
    
    
    ( $erg['ticks'] ist 1 )

    Aber die ausgabe macht mir sorgen... vorallem, weil $all 211 und nich 200 wie übergeben ist.
    Bitte helft mir, ich bin am verzweifeln.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

    Einmal editiert, zuletzt von Tobse (3. Juli 2010 um 12:09)

  • Ich hab kein Plan was du da vorhast, aber wenn du so debuggst, musst du eigentlich sehen wo der Fehler liegt bzw. in welcher Funktion

    PHP
    print "Debug1: percent(" . $erg['ticks'] . ", " . $ppl . ");<br>";
    $p=percent($erg['ticks'], $ppl);
    print "Debug2: pVal(" . $p . ", 200);<br>";
    $content.="<div class=\"voting_question\" title=\"".$erg['question']."\" style=\"width: ".pVal($p, 200)."px;\"></div>";

    Gruß crAzywuLf :D

  • Hab ich, bin aber trotzdem nicht draufgekommen. Mir ist dann aufgefallen, dass in meinem Copyright anstadt 2010 2111 steht. der Fehler lag darin, dass ich nen outpu-buffer hab, der vor dem senden ein

    PHP
    header ("Content-type: text/html;charset=utf8");

    ausführt und dann ein UTF-8 geparstes html zurückgibt. Für sonderzeichen und den kram, also &auml; z.B., hatte ich ein strtr genutzt, und warum auch immer hat diese Zeile alle 0en in verbindung mit anderen Zeichen in 1en verwandelt:

    PHP
    "®"=>"&reg;",

    War wohl auch ein ASCII probem.... Dateiformatierungen sind doch was schöndes xD

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!