Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler: Unexcepted {

Einklappen

Neue Werbung 2019

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

  • Fehler: Unexcepted {

    Hi,

    Ich bekomme den Fehler:

    "Parse error: syntax error, unexpected '{' in /Applications/xampp/xamppfiles/htdocs/notebook/version2/todo.php on line 95"

    Der entsprechende Code ist:

    PHP-Code:
    function __getTodoStatus($progress$id$isParent){
        
        global 
    $prio;
        
        if ((!(
    __hasChildItems$id )) || ($isParent == )){
            
            
    //display Check-Status
            
    if ($progress 100)
                return 
    '<a href="check.php?id='.$id.'&prio='.$prio.'"><img src="notdone.gif" width="16" height="16" /></a>'
                 else
                  return 
    '<img src="done.gif" width="16" height="16"/>'
        }
        
        return 
    "";


    Zeile 95 ist die Zeile in der die if-Abfrage kommt.

    Ich kann mir den Fehler nicht erklären. Aber ich hatte mal einen ähnlichen Fehler. Da war es irgendwie so, dass ich hinter den Funktions-bezeichner kein Leerzeichen vor der { machen durfte also:

    PHP-Code:
    function foo() { ... } 
    Ergab einen Fehler aber,

    PHP-Code:
    function foo(){ ... } 
    nicht.

    Danke.


  • #2
    Der Fehler liegt auch direkt in deiner If-Abfrage
    5 Klammern gehen auf aber nur 4 zu - kann nicht stimmen
    ich denk mal die klammer vor __hasChildItems ist zuviel.

    mfg

    Kommentar


    • #3
      Tatsächlich..!

      Okay muss ich mir merken. Da hab ich mich etwas irritieren lassen von der Fehlermeldung und hab dann nur nach Fehler bei den geschweiften Klammern gesucht.

      Danke!

      Kommentar


      • #4
        Zitat von Stephan_87 Beitrag anzeigen
        Tatsächlich..!

        Okay muss ich mir merken. Da hab ich mich etwas irritieren lassen von der Fehlermeldung und hab dann nur nach Fehler bei den geschweiften Klammern gesucht.

        Danke!
        Naja im Grunde ist die Fehlermeldung auch richtig, es ist halt nur eine Sache ob man sie richtig interpretiert.

        Für PHP sieht die Sache so aus: Da eine Klammer noch offen ist, ist die Kondition der if-Abfrage noch nicht beendet. In den Klammern einer If-Abfrage hat ein { aber nichts zu suchen. PHP stößt also auf { und merkt "das darf nicht in einer if-kondition stehen" und meint folgerichtig "unerwartetes {"

        Oder anders ausgedrückt: Bei

        if ($muh == "muh" { )

        wäre die fehlermeldung "unexpected {" ja genau das was man erwarten würde. und genau so ein code ist deiner für PHP
        mfg

        Kommentar


        • #5
          Fehler: Unexcepted {
          Deshalb auch unexpected - unerwartet!
          Da war es irgendwie so, dass ich hinter den Funktions-bezeichner kein Leerzeichen vor der { machen durfte also:
          Das ist definitiv Quatsch.
          --

          „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


          • #6
            Dann ist das vielleicht eine macinterne Sache!

            Ich hatte sehr ähnliche, nicht reproduzierbare Fehler auch schon bei c :


            int sdfsdfdsf() {

            }


            warf einen nichtssagenden Fehler: (irgendwas mit \stray 1xx )
            Eine Googlesuche nach dem Fehler blieb erfolglos. Es wurde nur ein oder zwei Sache gefunden, in denen es aber nicht um dieses stray-dings ging.

            Naja, sobald ich die Funktion in

            int ssdfsdfsdf(){

            umschrieb trat der Fehler nicht mehr auf.

            Selbiges hatte ich jetzt auch einmal bei PHP (aber eine andere Fehlermeldung).

            Wie gesagt, nicht reproduzierbar. Aber es trat definitiv auf. Vielleicht kann sich da zufällig jemand einen Reim drauf machen ?

            Kommentar


            • #7
              Zitat von Stephan_87 Beitrag anzeigen
              Dann ist das vielleicht eine macinterne Sache!

              Ich hatte sehr ähnliche, nicht reproduzierbare Fehler auch schon bei c :


              int sdfsdfdsf() {

              }


              warf einen nichtssagenden Fehler: (irgendwas mit \stray 1xx )
              Eine Googlesuche nach dem Fehler blieb erfolglos. Es wurde nur ein oder zwei Sache gefunden, in denen es aber nicht um dieses stray-dings ging.

              Naja, sobald ich die Funktion in

              int ssdfsdfsdf(){

              umschrieb trat der Fehler nicht mehr auf.

              Selbiges hatte ich jetzt auch einmal bei PHP (aber eine andere Fehlermeldung).

              Wie gesagt, nicht reproduzierbar. Aber es trat definitiv auf. Vielleicht kann sich da zufällig jemand einen Reim drauf machen ?
              Da liegt der Fehler mit 100%iger Sicherheit irgendwo anders im Code, und dein Code wird dann an irgendeinem Punkt auch nicht so funktionieren wie er soll.
              Macintern gibts da nix. Zwischen der schließenden Klammer und der sich öffnenden geschweiften Klammer dürfen schlicht soviele leerzeichen, newlines oder sonstiges liegen wie du willst

              Zu C kann ich nichts sagen, da das bei mir zu lang her ist

              mfg

              Kommentar

              Lädt...
              X