Hello,
Nur weil es (zufällig) funktioniert, muss es doch aber noch nicht erlaubt sein, oder?
Das gilt AFAIK bei HTML und Browsern, aber nicht bei Programmier-Sprachen,
die sollten da strenger sein.
In Programmiersprachen gilt das genauso.
Unsaubere Bereichsgrenzenbehandlung ist die häufigste Fehlerquelle. Solange die Werte im erlaubten vorgesehenen[1] Bereich bleiben, funktioniert alles bestens, aber sowie ein Wert an die Grenze kommt oder sie überschreitet, macht das Programm ungewöhnliche Dinge.
Und in PHP ist es sehr wohl möglich, innerhalb einer Funktion eine andere zu deklarieren. Beim ersten Aufruf funktioniert alles bestens. Wenn man aber nun die Hüllfunktion innerhalb des Scriptes das zweite Mal aufruft, gibt es einen Redefine-Error.
Der Parser kann soclche Fehler im Design nicht finden, denn unter bestimmten Umständen sins sie ja auch wirklich gewollt. Mit einem Überschlag bei Variablen hat man immer gerne gearbeitet und eine bedingte Deklaration ist auch oft praktisch.
[1] vorgesehen aus Sicht des Programmieres ist leider oft nur der IHM im Moment der Codierung sinnvoll erscheinende Bereich, aber nicht der über die Benutzerschnittstelle möglicherweise eingebbare. Das wäre aber richtig! Darüberhinaus laufen aber auch Schleifen oft an ihre Grenzen. Wenn die Lauf-/Abbruchbedingung dann z.B. heißt "until i > MaxInt" (symbolisch) dann wird die Schleife vermutlich niemals enden, auch wenn sauber hochgezählt wurde. i hat eben leider den Typ Int gehabt - Pech eben!
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau