Error list
C_Buster_G
- php
Hi,
Hat vieleicht einer von euch schon mal irgendwo ne übersetzung"Deutsch" oder eine tiefer eingehende erklärung für die Error list"Fehlermeldungen" in PHP gefunden?
Wär sehr hilfreich...
Danke..
MfG Chris
Hat vieleicht einer von euch schon mal irgendwo ne übersetzung"Deutsch" oder eine tiefer eingehende erklärung für die Error list"Fehlermeldungen" in PHP gefunden?
Wär sehr hilfreich...
Die Fehlermeldungen von PHP wären auch auf Deutsch nicht zu gebrauchen..
SCNR ;)
soenk.e
Hi,
Die Fehlermeldungen von PHP wären auch auf Deutsch nicht zu gebrauchen..
was ich eigentlich nie über PHP wissen wollte und deswegen auch nicht zu fragen gewagt habe: Ist PHP von Microsoft? ;-)
Cheatah, SCNR2
Hi,
Die Fehlermeldungen von PHP wären auch auf Deutsch nicht zu gebrauchen..
was ich eigentlich nie über PHP wissen wollte und deswegen auch nicht zu fragen gewagt habe: Ist PHP von Microsoft? ;-)
Cheatah, SCNR2
AHHH, IHHHH
sorry musste sein!
Nein PHP ist eine (Open-Source-)Projekt von ein paar schlauen Leuten
Nein PHP ist eine (Open-Source-)Projekt von ein paar schlauen Leuten
Für die Ausgabe von in irgendeiner Weise sinnvollen Fehlermeldungen hat die Schlauheit aber anscheinend nicht mehr gereicht :> Oder kannst Du mir erklären, warum der Interpreter sich über ein überflüssiges Semikolon beschwert, obwohl meilenweit kein Semikolon in Sicht ist und der eigentliche Grund die fehlende, abschließende Klammer einer if-Bedingung ist?
Und auch sonst erscheint mir diese Sprache reichlich chaotisch und mal-so-eben-zusammengeschustert.
Gruß,
soenk.e
Moin,
Für die Ausgabe von in irgendeiner Weise sinnvollen Fehlermeldungen hat die Schlauheit aber anscheinend nicht mehr gereicht :> Oder kannst Du mir erklären, warum der Interpreter sich über ein überflüssiges Semikolon beschwert, obwohl meilenweit kein Semikolon in Sicht ist und der eigentliche Grund die fehlende, abschließende Klammer einer if-Bedingung ist?
Du möchtest diese Bemerkung bitte zurückhalten, bis du es geschafft hast, die erste funktionierende künstliche Intelligenz zu entwickeln. Danke.
Aus der Sicht des Parsers ist die Meldung nämlich durchaus richtig: Das kann der doch nicht riechen, dass deine if-Bedingung schon fertig sein soll, wenn du es nicht hinschreibst. Da du ihm diesen Hinweis durch die schliessende Klammer aber nicht gegeben hast, muss er annehmen, dass der folgende Text noch dazu gehört, und dann ist das Semikolon arg überflüssig.
--
Henryk Plötz
Grüße aus Berlin
hi!
Aus der Sicht des Parsers ist die Meldung nämlich durchaus richtig:
Das kann der doch nicht riechen, dass deine if-Bedingung schon
fertig sein soll, wenn du es nicht hinschreibst. Da du ihm diesen
Hinweis durch die schliessende Klammer aber nicht gegeben hast,
muss er annehmen, dass der folgende Text noch dazu gehört, und
dann ist das Semikolon arg überflüssig.
Hm, ob ich mich davon schon überzeugen lassen sollte? ;)
Der Parser erwartet als if-Bedingung doch einen Ausdruck. Was danach
innerhalb der if-Anweisung steht, ist ein Statement. Ich glaube eher
nicht, dass der Parser einen Ausdruck nicht von dem nachfolgenden
Statement unterscheiden kann -- da sollte ja mindestens ein Leerzeichen
dazwischen stehen, was in einem Ausdruck nicht so ohne weiteres erlaubt
sein dürfte.
Zumindest also die Stelle, an der wirklich ein Fehler auftritt (die
fehlende Klammer nämlich), sollte der Parser erkennen. Das schaffen
ja auch Perl und GCC.
bye, Frank!
Hi,
Hm, ob ich mich davon schon überzeugen lassen sollte? ;)
ja, denn es ist richtig.
Der Parser erwartet als if-Bedingung doch einen Ausdruck. Was danach
innerhalb der if-Anweisung steht, ist ein Statement. Ich glaube eher
nicht, dass der Parser einen Ausdruck nicht von dem nachfolgenden
Statement unterscheiden kann
Wie soll er auch? Das, was Du hier Statement nennst, gibt ebenfalls einen Boole'schen Wert zurück - nur deswegen funktioniert "funktion() or print 'Fehler';" und ähnliches. Alles, was einen Boole'schen Wert liefert, kann als Ausdruck angesehen werden.
-- da sollte ja mindestens ein Leerzeichen
dazwischen stehen,
Nein, eine schließende Klammer, die als einziges dem Parser mitteilen kann, dass der Ausdruck beendet ist. Alles andere kann nur in einem Syntaxfehler resultieren - oder aufgrund eines sehr kranken Umstandes vielleicht auch nicht, so dass der Fehler unentdeckt bleibt. Nichts desto trotz kann der Parser nicht raten.
Zumindest also die Stelle, an der wirklich ein Fehler auftritt (die
fehlende Klammer nämlich), sollte der Parser erkennen.
Nein, siehe oben. Die Klammer fehlt ihm nämlich nicht, das weißt nur Du.
Das schaffen ja auch Perl und GCC.
Auch Perl und GCC melden Fehler dort, wo sie erstmalig einen entdecken. In sehr vielen Fällen ist das _nicht_ die Stelle, die der Programmierer anschließend korrigiert.
Cheatah
hi!
Ich glaube eher nicht, dass der Parser einen Ausdruck nicht
von dem nachfolgenden Statement unterscheiden kann
Wie soll er auch? Das, was Du hier Statement nennst, gibt
ebenfalls einen Boole'schen Wert zurück - nur deswegen funktio-
niert "funktion() or print 'Fehler';" und ähnliches. Alles, was
einen Boole'schen Wert liefert, kann als Ausdruck angesehen
werden.
Ich habe das bewusst "Statement" genannt, weil es eben kein Ausdruck
ist. Statements sind Anweisungen. Das können zwar auch Ausdrücke
sein, aber da fallen auch if-Anweisungen und Schleifen drunter, die
keinen Wert zurückgeben.
-- da sollte ja mindestens ein Leerzeichen dazwischen stehen,
Nein, eine schließende Klammer, die als einziges dem Parser
mitteilen kann, dass der Ausdruck beendet ist.
Also spätestens, wenn ein Block mitten in der if-Bedingung beginnt,
sollte der Syntaxfehler an der Stelle klar sein. Steht dort eine
reine Anweisung (ohne Block außenrum), würde die direkt auf einen
Ausdruck folgen. Da das keine gültige Möglichkeit ist, einen neuen
Ausdruck zu erzeugen, müsste es auch hier wieder an dieser Stelle
einen Syntaxfehler geben.
Zumindest also die Stelle, an der wirklich ein Fehler auftritt
(die fehlende Klammer nämlich), sollte der Parser erkennen.
Nein, siehe oben. Die Klammer fehlt ihm nämlich nicht, das weißt
nur Du.
Da bin ich anderer Meinung... ;)
bye, Frank!
Hi,
Ich habe das bewusst "Statement" genannt, weil es eben kein Ausdruck
ist. Statements sind Anweisungen. Das können zwar auch Ausdrücke
sein, aber da fallen auch if-Anweisungen und Schleifen drunter, die
keinen Wert zurückgeben.
tja, nur weiß leider der Syntax-Check nicht, was der Block letztlich zurückgeben wird... ;-)
Also spätestens, wenn ein Block mitten in der if-Bedingung beginnt,
sollte der Syntaxfehler an der Stelle klar sein.
Es sei denn, die Sprache erlaubt so etwas. Aber ich denke, wir drehen uns im Kreis... Wir beide sind der Meinung "schöner wäre schöner", streiten uns aber über den ist-Fall. Wenn daraus wenigstens ein BHP ("Better Hypertext Preprocessor") entstehen würde... ;-)
Cheatah
Für die Ausgabe von in irgendeiner Weise sinnvollen Fehlermeldungen hat die Schlauheit aber anscheinend nicht mehr gereicht :> Oder kannst Du mir erklären, warum der Interpreter sich über ein überflüssiges Semikolon beschwert, obwohl meilenweit kein Semikolon in Sicht ist und der eigentliche Grund die fehlende, abschließende Klammer einer if-Bedingung ist?
Du möchtest diese Bemerkung bitte zurückhalten, bis du es geschafft hast, die erste funktionierende künstliche Intelligenz zu entwickeln. Danke.
Aus der Sicht des Parsers ist die Meldung nämlich durchaus richtig: Das kann der doch nicht riechen, dass deine if-Bedingung schon fertig sein soll, wenn du es nicht hinschreibst. Da du ihm diesen Hinweis durch die schliessende Klammer aber nicht gegeben hast, muss er annehmen, dass der folgende Text noch dazu gehört, und dann ist das Semikolon arg überflüssig.
Der Haken an der Geschichte war nur dummerweise, daß wie gesagt in der besagten Zeile kein Semikolon war (erst in der nächsten), sondern eine geschweifte Klammer. Also doppelt sinnlos: Kein Semikolon in Sicht, somit kann auch keines überflüssig sein und eine Klammer, die normalerweise den Anweisungsblock der if-Bedingung einleitet, woraus man schließen könnte, daß die if-Bedingung an diesem Punkt beendet sein soll.
Nun sammle ich meine Fehler nicht und kann deshalb die Konstruktion hier leider nicht mehr vorführen.
Dieser Einzelfall hätte mich auch nicht gestört, wenn es denn ein Einzelfall wäre und nicht öfters statt einer Fehlermeldungen ein Fehlerrätsel ausgespuckt wird.
Rein subjektiv kommt es mir jedenfalls so vor, daß PHP in dieser Hinsicht gegenüber zwei mir bekannten Modula-2-Systemen und auch GCC/C arge Probleme hat. Ich kann mich jedenfalls nicht erinnern, daß ich mit letzteren dreien dermaßen viel suchen mußte. Eventuell spielt da auch die Sprachstruktur von PHP mit rein, die vielleicht nichts anderes zulässt, weil sie gegenüber anderen Sprachen zu "locker" ist.
Aber vielleicht sollte ich einfach nicht soviele Fehler machen ;)
Gruß,
soenk.e
Hi,
eine Klammer, die normalerweise den Anweisungsblock der if-Bedingung einleitet,
die öffnende geschweifte Klammer leitet einen Block ein, nicht den Anweisungsblock der if-Bedingung. Es ist denkbar, dass sowas auch innerhalb Boole'scher Arithmetik Sinn macht - schließlich muss ja nur entweder true oder false zurückgeliefert werden.
nicht öfters statt einer Fehlermeldungen ein Fehlerrätsel ausgespuckt wird.
Ja, da stimme ich zu; viele Fehlermeldungen von PHP lassen einen die Stirn runzeln. Nichts desto trotz machen sie - aus rein technischer Sicht - Sinn. Auch wenn diese Erkenntnis nicht viel hilft ;-)
Eventuell spielt da auch die Sprachstruktur von PHP mit rein, die vielleicht nichts anderes zulässt, weil sie gegenüber anderen Sprachen zu "locker" ist.
Jupp, das denke ich auch.
Aber vielleicht sollte ich einfach nicht soviele Fehler machen ;)
Abgelehnt :-)))
Cheatah
Hi,
Nein PHP ist eine (Open-Source-)Projekt von ein paar schlauen Leuten
ein Beweis dafür, dass Open Source kein Garant für gute Qualität ist... ;-)
Cheatah