Tom: Ist das ein Bug?

Hello,

hat von Euch schon mal einer bei der PHP-Version 5.2.0-8 ein fread() mit der Längenangabe 0 durchgeführt?

Da kommt neuerdings die Fehlermeldung

Warning: fread() [function.fread]: Length parameter must be greater than 0 in ...

Seit wann ist das so?
MMn war die Funktion früher eigensicher und hat das Lesen von 0 Bytes zugelassen.

Oder irre ich mich da jetzt?
Hat jemand mal schnell eine 4er PHP-Version im Zugriff, um das da auszuprobieren?

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  1. Hallo

    hat von Euch schon mal einer bei der PHP-Version 5.2.0-8 ein fread() mit der Längenangabe 0 durchgeführt?

    Warning: fread() [function.fread]: Length parameter must be greater than 0 in ...
    Seit wann ist das so?

    scheint schon länger so zu sein, siehe http://www.php.net/manual/de/function.fread.php#48005

    Freundliche Grüße

    Vinzenz

    1. Hello Vinzenz,

      Hallo

      hat von Euch schon mal einer bei der PHP-Version 5.2.0-8 ein fread() mit der Längenangabe 0 durchgeführt?

      Warning: fread() [function.fread]: Length parameter must be greater than 0 in ...

      Seit wann ist das so?

      scheint schon länger so zu sein, siehe http://www.php.net/manual/de/function.fread.php#48005

      Danke.

      Damit hatte ich nicht gerechnet, denn ich schließe mich der Meinung von drane an.
      Das beantwortet auch gleich die Frage von Christian, warum ich 0 Bytes lesen will.

      Das ergibt sich gelegentlich so aus dem Programmfluss und es ist in allen mir bekannten Hochsprachen auch erlaubt. Wenn das Verhalten der Funktion so sein soll, dann gehört die Einschränkung als normel Beschreibung auch ins Manual. UCNs sind immer sehr nützlich, aber eben nicht die offizielle Beschreibung für normales Verhalten.

      Man muss wirklich ein gewaltiges if-else-Kontrukt dafür bauen, um diese "Macke" aufzufangen.

      Das ist aber bei den PHPlern scheinbar so üblich, dass die Funktionen und Konstrukte nicht eigensicher gebaut werden.

      ein foreach() fällt ja auch auf die Schnauze, wenn das Argument kein Array ist, anstatt einfach nichts zu tun.

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Hallo Tom,

    Da kommt neuerdings die Fehlermeldung

    Neuerdings? Im PHP-CVS ist das seit Januar 2004 so drin, und zwar

    * im damaligen PHP 4.3 Branch
     * im damaligen HEAD, aus dem dann PHP4.4 wurde.

    Sprich: Seit PHP 4.3.5 (März 2004) ist das nicht mehr erlaubt.

    Warum willst Du überhaupt 0 Bytes lesen?

    Viele Grüße,
    Christian