Ankündigung

Einklappen
Keine Ankündigung bisher.

[php 5.1.0 und 5.1.2] bug in bz/dz funktionen?

Einklappen

Neue Werbung 2019

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

  • [php 5.1.0 und 5.1.2] bug in bz/dz funktionen?

    hi,

    wollte grad bzdecompress benutzen, da sagt mir php "funktion nicht vorhanden". auch andere bz funktionen funktionieren nicht, es funktioniert nur "bzcompress". bei gz dasselbe in grün.
    hab hier zuhause xampp drauf und habe bereits php 5.1.2 runtergeschmissen und 5.1.0 draufgemacht, aber immernoch.

    hat jmd. ne idee???

    gruß
    [B]PHP4?!?[/B]>>>[B]Aktuelle[/B] PHP Version: [B]5.2.11 || 5.3.0
    [URL="http://en.opensuse.org/Factory/News"]Suse 11.2 *vorfreude*[/URL]
    [/B]

  • #2
    Hallo brian johnson,

    IMHO ist das an eine PECL-Extension und muss in der php.ini aktiviert werden.
    Viele Grüße,
    Dr.E.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1. Think about software design [B]before[/B] you start to write code!
    2. Discuss and review it together with [B]experts[/B]!
    3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
    4. Write [I][B]clean and reusable[/B][/I] software only!
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Kommentar


    • #3
      Korrekt!

      (Wieso glaubt eigentlich jeder, dass wenn mal nicht was so funktioniert, wie es soll, dass es ein bug ist?!?)
      Nicht jeder Fehler ist ein Bug.

      Kommentar


      • #4
        @KingCrunch: Ich find deine Signatur geil
        Viele Grüße,
        Dr.E.

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        1. Think about software design [B]before[/B] you start to write code!
        2. Discuss and review it together with [B]experts[/B]!
        3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
        4. Write [I][B]clean and reusable[/B][/I] software only!
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        Kommentar


        • #5
          manche Leute denken, dass in dem ausdruck da unten ein Bug ist
          PHP-Code:
          if(((string)"0XABBA"==(int)"43962")==array("0O125672"))echo "ja das stimmt"
          das stimmt aber nicht.
          Genau so muss es auch sein.
          Slava
          http://bituniverse.com

          Kommentar


          • #6
            It's not a bug, it's a feature

            Kommentar


            • #7
              Zitat von squig
              It's not a bug, it's a feature
              genau!!!
              Slava
              http://bituniverse.com

              Kommentar


              • #8
                Zitat von Slava
                manche Leute denken, dass in dem ausdruck da unten ein Bug ist
                PHP-Code:
                if(((string)"0XABBA"==(int)"43962")==array("0O125672"))echo "ja das stimmt"
                das stimmt aber nicht.
                Machs doch noch gemeiner. Nimm (int)"043962". Das bringt sicher noch welche auf die Fährte, da könnten Oktalzahlen dabei sein. ^^

                Der Ausdruck selber ist natürlich fehlerfrei. Verwunderlich ist ja eher, dass er whar ist und damit das echo ausgeführt wird.
                **********************************
                Nein, ich bin nicht die Signatur.
                Ich putze hier nur.
                **********************************

                Kommentar


                • #9
                  Und warum?
                  Nicht jeder Fehler ist ein Bug.

                  Kommentar


                  • #10
                    das ist verwunderlich, wenn man von Java oder c++ auf PHP umsteigt und vergisst, dass Operator "==" bei anderen sprachen eigentlich bei PHP "===" heißt.
                    Aufgabe von Operator"==" in PHP ist eigentlich Gleichheit von den Werten festzustellen ohne Rücksicht auf die Datentypen von Variablen. Um das zu realisieren versucht operator "==" alle mögliche Typenumwandlungen von den Variablen durchführen und bei erstem positivem vergleich eine TRUE liefert. Erst wenn alle Typeumwandlungen kein passendes ergebnis bringt liefert operator "==" FALSE.


                    if((int)"23 Frauen"==(float)"23 Mäner")echo "das ist verrückt";
                    Slava
                    http://bituniverse.com

                    Kommentar


                    • #11
                      Na weil man auf den ersten Blick evtl. die Klammerung der Teilausdrücke übersieht und meint, dass der Wert im einzigen Array-Element irgendeine Bedeutung hätte.
                      Erst wenn man sich die Klammern genauer ansieht, merkt man, dass da nur true aus der ersten Klammer mit dem Array verglichen wird, was eben auch einfach nach true konvertiert wird.
                      **********************************
                      Nein, ich bin nicht die Signatur.
                      Ich putze hier nur.
                      **********************************

                      Kommentar


                      • #12
                        Zitat von Slava
                        if((int)"23 Frauen"==(float)"23 Mäner")echo "das ist verrückt";
                        Das ist nicht das Problem.

                        Das Array am Ende des Ausdrucks hat ja nun gar nix mit dem Zeugs davor zu tun. Da hilft auch keine Konvertierung nach integer mehr.
                        **********************************
                        Nein, ich bin nicht die Signatur.
                        Ich putze hier nur.
                        **********************************

                        Kommentar


                        • #13
                          du hast es richtg bemerkt
                          (string)"0XABBA"==(int)"43962" liefert TRUE weil
                          0xABBA ist einfach hexadezimale darstellung von 43962
                          0xABBA==43962 ist also true.
                          und wie erwartet pfeift operator "==" auf die datentüpen von Variablen da seine Aufgabe ist ein Vergleich ohne rücksicht auf die typen durchzuführen.
                          das bedeutet also, dass intern mcht er aus dem string "0xABBA" ein int und vergleicht diesen int wert mit dem int wert von 43962
                          etwa so
                          if(intval(0xABBA)===intval("43962")) was natürlich TRUE liefert.

                          vergleich mit dem array war natürlich ein trik
                          da wir in wirklichkeit
                          if(TRUE==array(egalwas)) abgfragt haben und das hat uns true geliefert
                          Slava
                          http://bituniverse.com

                          Kommentar


                          • #14
                            Das hab ich so weit verstanden, aber wieso ist die Klammer "true"?
                            Nicht jeder Fehler ist ein Bug.

                            Kommentar


                            • #15
                              Zitat von KingCrunch
                              Das hab ich so weit verstanden, aber wieso ist die Klammer "true"?
                              lese noch mal durch was ich über operator "==" geschrieben habe.
                              Also die datentypen, die du übergibst sind ihm egal, er macht alle Typumwandlungen intern um eine gleichheit zwischen variablen zu finden.
                              aus diesem grund liefert if("23"==23) ein true weil dtentypen für operator "==" keine rolle spielen.
                              Slava
                              http://bituniverse.com

                              Kommentar

                              Lädt...
                              X