Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] So oft Teilen wie nötig

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] So oft Teilen wie nötig

    Hallo, das ist mein erster Beitrag bei euch PRofis und ich hoffe Ihr seid net zu mir

    Ich würde gerne per php eine Zahl solange teilen lassen bis sie kleiner-gleich einer anderen ist. Ich habs schon so versucht, klappt aber nicht :
    PHP-Code:
    function calculate_filesize($size) {
        
    $b = array('B''kB''MB''GB''TB'); 
        
    $c "0";
        if (
    $size >> '0') {
            if(
    $size >> '1024') {
                while(
    $size <= '1024'){
                
    $size $size '1024';
                
    $c++;
                }
                return 
    $size.' '.$b[$c];
            } else {
            return 
    $size.'B';
            }
        }

    Das ganze ist als Dateigrößenbestimmung gedacht und JA ich weiß, dass es auch anders bzw. besser geht, hab mich aber an der Sache mit dem Teilen bis es passt festgebissen.

    Ich mach de jetzt schon ein paar Stunden dran rum, wenn ich php-bilnd geworden bin oder einfach zu blöd sagts mir ruhig.

    +++ Sorry Sorry Sorry, mein erster Beitrag und ich versau es gleich!!!

    habs 5 min nach dem einstellen gefunden warums net geht:
    falsch:
    PHP-Code:
    while($size <= '1024'){ 
    richtig:
    PHP-Code:
    while($size >= '1024'){ 
    Wer einen Fehler findet darf ihn behalten.


  • #2
    Die Bit-Operatoren sind auch eher ein Versehen, oder? Zudem solltest du Zahlen nicht in Stringbegrenzer einfassen.
    http://hallophp.de

    Kommentar


    • #3
      Warum behandelst du Zahlen als Strings, wenn du damit rechnen willst ?

      Kommentar


      • #4
        Mit den Zahlen und Strings habt ihr recht!

        Ist aber so eine blöde Angewohnheit von mir alles in ' oder " zu schreiben. Kann das einfluss auf irgendwelche Funktionen o.ä. haben???

        Und wie hätte ich das noch eleganter rechnetn können.
        Wer einen Fehler findet darf ihn behalten.

        Kommentar


        • #5
          Zahlen sind nun mal Zahlen und keine Strings. Dabei geht es um die Semantik. In PHP wirst du nicht gezwungen, den Typ einer Variablen explizit anzugeben, in anderen Programmiersprachen "fliegen dagegen die Fetzen", wenn du plötzlich anfängst, mit einer Zeichenkette zu rechnen.

          Und wie hätte ich das noch eleganter rechnetn können.
          Du kannst zumindest die Bit-Operatoren rausschmeißen:
          PHP-Code:
          function calculate_filesize($size) {
            
          $b = array('B''kB''MB''GB''TB');
            
          $c 0;
            if (
          $size >= 0) {
              while(
          $size >= 1024) {
                
          $size $size 1024;
                ++
          $c;
              }
              return 
          $size ' ' $b[$c];
            }

            return 
          false;

          http://hallophp.de

          Kommentar


          • #6
            Ja, hab ich jetzt auch bei mir so gemacht.

            @Asipak
            ist das mit dem ++$c Absicht?? Funkitoniert das auch oder ist es besser?
            Wer einen Fehler findet darf ihn behalten.

            Kommentar


            • #7
              Ob ++$c oder $c++ ist an dieser Stelle egal. Schau dirs im Manual an was der Unterschied ist.

              Kommentar


              • #8
                Ja, das ist Absicht.

                Zwischen beiden Varianten gibt es einen Unterschied bei der Ausführung des Codes: Inkrement- bzw. Dekrementoperatoren . Daraus lässt sich auch ein gewisser Performanceunterschied ableiten: Iteration: Berechnug und Inkrement im Vergleich - PHP Performance Optimierung .

                Gruß
                http://hallophp.de

                Kommentar


                • #9
                  Also wenn du bei der Performance von $i++ und ++$i schon so drauf achtest ... dann solltest du vielleicht auch drauf achten das deine Variablen nur ein Zeichen lang sind, du keine Kommentare im Quelltext hast und der das Kabel vom Server zum nächsten Switch nicht länger als 2 Meter ist ...

                  Ganz ehrlich? Ein absoluter Zeitunterschied von 20 Nanosekunden ist für mein Verständnis kein wirklicher Performanceunterschied. Das ist nur wieder Korinthenkackerei!

                  Kommentar


                  • #10
                    dann solltest du vielleicht auch drauf achten das deine Variablen nur ein Zeichen lang sind, du keine Kommentare im Quelltext hast und der das Kabel vom Server zum nächsten Switch nicht länger als 2 Meter ist ...
                    Alles bereits erledigt, Flo

                    Ganz ehrlich? Ein absoluter Zeitunterschied von 20 Nanosekunden ist für mein Verständnis kein wirklicher Performanceunterschied. Das ist nur wieder Korinthenkackerei!
                    Das sich dieser, bei diesem Codeschnipsel, in irgendeiner Form spürbar bemerkbar macht, hat ja auch niemand behauptet. Aber brichst du dir einen ab, wenn du zuerst zweimal auf die [+]-Taste hämmerst, bevor du die Variable dahintertippst?

                    Die gleiche Diskussion gibt es doch auch zum Thema: "Double-Quotes oder doch lieber Single-Quotes". Zumindest sollte einem bewusst sein, dass es da einen Unterschied bei der Interpretation gibt und dass dieser Auswirkungen auf die Laufzeit des Programms haben kann.
                    http://hallophp.de

                    Kommentar


                    • #11
                      Bitte poste zukünftig im Einsteigerbereich.

                      [MOD: verschoben]
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        PS: IMHO gibts genau den Anwendungsfall auch als Beispiel im Manual. Oder hier im Board.
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Jungs (oder Mädels oder beides, kenn euch ja net) ich merk schon, eure Diskusion spielt in einer anderen Liga.

                          Ich danke trotzdem für eure schnelle Hilfe, und wir können diese Thema als beendet betrachten.

                          Werd aber gleich ein neues eröffnen, weil ich noch viel lernen will/muss.
                          Wer einen Fehler findet darf ihn behalten.

                          Kommentar

                          Lädt...
                          X