( @ ) Wofür steht dieses Zeichen?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • ( @ ) Wofür steht dieses Zeichen?

    hallo zusammen,

    ich bin gerade dabei eine Server-Abfrage zu erstellen. Da ich das jetzt zum ersten mal mache, habe ich mir eine Vorlage aus dem I-Net gezogen, woran ich mich ein wenig orientieren wollte. Dabei bin ich auf einen Befehl gestoßen, bei dem ich nicht weiß was er bedeutet.

    @fsockopen

    Mir geht es jetzt nicht um fsockopen, sondern um das @ davor. Kann mir bitte mal wer sagen wofür dieses Zeichen steht?

    Bei Google habe ich schon danach gesucht, aber nicht wirklich was gefunden.

  • #2
    Bin zwar wirklich ein PHP Amateur allerdings ist das doch meines Wissens dafür da, Fehlermeldungen diesbzgl. zu unterdrücken!

    Gruß DD

    Comment


    • #3
      hmm versteh zwar nicht warum man sowas macht, aber da werd ich wohl nochmal ein wenig lesen müssen.

      Danke für die schnelle Hilfe _DD_
      bye

      Comment


      • #4
        Hier findest du mehr dazu:

        http://php.net/language.operators.errorcontrol
        hopka.net!

        Comment


        • #5
          Original geschrieben von Melchor
          hmm versteh zwar nicht warum man sowas macht, aber da werd ich wohl nochmal ein wenig lesen müssen.
          Es gibt eigentlich nur einen Grund, das zu machen: Man möchte ventuell auftretende Fehler nicht abfangen und ordentlich behandeln. Das ist in jedem Fall eine ganz lausige Art zu programmieren!

          Wenn also in PHP-Code irgendwo @ vorkommt und nicht Teil einer Emailadresse ist, dann ist es schlechter Code. Ohne wenn und aber.

          Comment


          • #6
            Original geschrieben von onemorenerd
            Ohne wenn und aber.
            Naja, außer wenn es ein Zusammengesetzter Link für nen FTP-Login ist (ftp://userassword@serverort/) - da gibts auch 'n @
            Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

            Comment


            • #7
              Original geschrieben von onemorenerd
              Wenn also in PHP-Code irgendwo @ vorkommt und nicht Teil einer Emailadresse ist, dann ist es schlechter Code. Ohne wenn und aber.
              Da halte ich dagegen.

              Gegenbeispiel: Du möchtest eine E-Mail versenden per mail()-Funktion, hast also einen Aufruf von mail() in deinem Code. mail gibt einen boolschen Wert zurück, ob die Mail für den Versand akzeptiert wurde oder nicht. Es ist also sehr gut vorstellbar, einen solchen Code zu implementieren:

              PHP Code:
              if (mail(blablabala)) echo 'alles klar';
              else echo 
              'mailversand nicht erfolgreich'
              Aber was machst du, wenn mail() überhaupt nicht den Mailserver erreicht, der die Mail verschicken soll? z.B. wenn der Mailserver überhaupt nicht läuft? Dann kriegst du oben ne dicke, fette, hässliche Warning-Zeile von PHP ausgegeben. Aber hat das den Benutzer zu interessieren? Nein, denn der kriegt ja schon von deinem Script die Nachricht, dass der Mailversand schiefgegangen ist. Und genau hier benutzt du einfach ein @, um die Warning-Zeile oben zu unterdrücken - und das hat für mich nichts mit schlechtem Code zu tun.


              Schlechter Code ist, wenn man bewusst weiß, dass Fehler auftreten könnten (z.B. wenn ne DB-Query schiefgegangen ist) und dann z.B. vor mysql_fetch_assoc oder so ein @ setzt. Das ist IMHO schlechter Code.
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Comment


              • #8
                Original geschrieben von Shurakai
                Aber was machst du, wenn mail() überhaupt nicht den Mailserver erreicht, der die Mail verschicken soll? z.B. wenn der Mailserver überhaupt nicht läuft? Dann kriegst du oben ne dicke, fette, hässliche Warning-Zeile von PHP ausgegeben. Aber hat das den Benutzer zu interessieren? Nein, denn der kriegt ja schon von deinem Script die Nachricht, dass der Mailversand schiefgegangen ist. Und genau hier benutzt du einfach ein @, um die Warning-Zeile oben zu unterdrücken - und das hat für mich nichts mit schlechtem Code zu tun.
                Auf Live-Systemen, also solchen mit echten Usern, setze ich display_errors = off.

                Comment


                • #9
                  Wenn man auf dem Produktivsystem keine Warnings sehen will, dann schaltet man sie entweder in der php.ini oder mit error_reporting ab!!

                  @ <<-- die Klammeraffen haben im Code NICHTS zu suchen!!
                  (Meine Meinug)
                  Wir werden alle sterben

                  Comment


                  • #10
                    Original geschrieben von onemorenerd
                    Es gibt eigentlich nur einen Grund, das zu machen: Man möchte ventuell auftretende Fehler nicht abfangen und ordentlich behandeln. Das ist in jedem Fall eine ganz lausige Art zu programmieren!

                    Wenn also in PHP-Code irgendwo @ vorkommt und nicht Teil einer Emailadresse ist, dann ist es schlechter Code. Ohne wenn und aber.
                    aha, und wenn du durch ein Verzeichnis browst und mittels getimagesize die Höhe und Breite einer Grafik ermitteln willst, dann musst du zwangsweiße ein @ benutzen, weil eine .txt einen Fehler (ist ja auch logisch) erzeugt.

                    Oder hättest du dafür ne Idee (mime_content_type ausgeschlossen)?
                    Sunshine CMS
                    BannerAdManagement
                    Borlabs - because we make IT easier
                    Formulargenerator [color=red]Neu![/color]
                    Herkunftsstatistik [color=red]Neu![/color]

                    Comment


                    • #11
                      Wenn man auf dem Produktivsystem keine Warnings sehen will, dann schaltet man sie entweder in der php.ini oder mit error_reporting ab!!
                      Du kannst nicht voraussetzen dass jeder Zugriff auf die php.ini hat und error_reporting ist dann eine globale Einstellung und nicht nur für eine einzige Sache. Es kommt - IMHO - ganz auf den Standpunkt bzw. den Code drauf an, ob und wie du den Klammeraffen benutzt.
                      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                      var_dump(), print_r(), debug_backtrace und echo.
                      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                      Comment


                      • #12
                        Also wenn man Fehler abfangen will, dann fängt man am besten alle ab und guckt dann was man mit den einzelnen Meldungen so macht. set_error_handler ist hier sehr hilfreich.

                        Allerdings gibt es auch Situationen in denen man einfach ein @ benutzt. Allerdings sind das eher Ausnahmen.
                        hopka.net!

                        Comment


                        • #13
                          man überlege sich, ob es dieses konstrukt in anderen (besseren/richtigen) sprachen gibt und wenn nein -- warum.

                          Comment


                          • #14
                            @Benny-one
                            Ganz schlechtes Beispiel
                            PHP Code:
                            <?php
                            error_reporting
                            (E_ALL);
                            ini_set('display_errors'TRUE); 

                            $test getimagesize(__FILE__) ;

                            var_dump($test);
                            ?>
                            PHP4 & PHP5 Stumm wie ein Fisch...
                            ----------------------------
                            Du kannst nicht voraussetzen dass jeder Zugriff
                            Nein?
                            Nagut.. Wenn du deine Seite bei einem absoluten
                            Billigheimer hostest, dann evtl..
                            Ist mir aber noch nicht über den Weg gelaufen...
                            Selbst bei str*to und 1+1 ....
                            ----------

                            Um mal ein wenig Frieden zu sähen:
                            @ ist ein PHP-Sprachmittel. PUNKT!
                            Wer als Programmierer nicht ALLE verfügbaren Mittel
                            einsetzt ist blöd.

                            Und jetzt zur Sinn Frage..
                            1. In Lehrbücher, Foren und Tutorials, ist ein
                            Sprachmittel, welches den Programmieranfänger
                            vor wichtigen Debug Hinweisen schützt, fehl am
                            Platze.. Erklären JA! Empfehlen NEIN!

                            2. Produktiv Umgebung
                            Abschalten, was das Zeug hält.
                            Fehlermeldungen per Email zum Webmaster, nagut,
                            damit er mich benachrichtigen kann (oder sofort zu mir).
                            Der Besucher bekommt eine saubere "Dieser Service
                            steht leider zur Zeit nicht zur Verfügung" (oder so
                            ähnlich) Meldung.

                            3. Wenn mir jemand sagt, "Wärend der Endwicklung
                            setze ich es manchmal ein." dann kann ich das
                            verstehen. Und manchmal, aber wirklich nur manchmal
                            setze ich es dann auch ein.
                            Last edited by combie; 18-09-2006, 00:05.
                            Wir werden alle sterben

                            Comment


                            • #15
                              Original geschrieben von combie
                              .... 1. In Leerbücher ....
                              Ich bezweifle, dass ich Leerbüchern irgendwas erklärt wird, geschweige denn, dass da was steht.
                              Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

                              Comment

                              Working...
                              X