kölir: echo mit ' statt "

hallöle,

warum kriege ich den \n zeilenumbruch bei einem echo mit ' nicht hin?

echo "hallo\nhallo";

führt zu gewünschtem ergebnis,

echo 'hallo\nhallo';

jedoch nicht.

warum?

thx für hilfe

  1. warum?

    Weil das eben so ist.

    Bei doppelten Anführungszeichen werden Escape-Sequenzen wie \n in Zeilenumbrüche umgewandelt, bei einfachen Anführungszeichen nicht.

    1. Ich grüsse den Cosmos,

      Weil das eben so ist.

      Das ist wohl die beschissenste Antwort, die es geben kann.
      Du nimmst wohl alles hin, was dir gesagt wird, ohne irgendwas zu hinterfragen?
      Kein eigener Wille, keine eigene Meinung und kein Rückgrat.

      Möge das "Self" mit euch sein

      --
      Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
      1. Hi,

        Du nimmst wohl alles hin, was dir gesagt wird, ohne irgendwas zu hinterfragen?

        Warum willst Du das hinterfragen? Es ist halt so programmiert worden und es ist auch sinnvoll so.

        freundliche Grüße
        Ingo

        1. Ich grüsse den Cosmos,

          Warum willst Du das hinterfragen? Es ist halt so programmiert worden und es ist auch sinnvoll so.

          Der OP wollte wissen, warum ein '\n' nicht funktioniert.
          Das es sinnvoll ist, geb ich dir recht, aber um zu wissen, was genau der Unterschied zwischen ' und " ist, ist nunmal ein Hinterfragen nötig.
          Ein Programmierer, der nicht hinterfragt, kann keine sinnvollen Programme schreiben, weil er die Programmiersprache gar nicht versteht.

          Mal abgesehen davon, das die ablehnung des Hinterfragens IMO ein Zeichen von Desinteresse ist.

          Möge das "Self" mit euch sein

          --
          Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
        2. Hallo Ingo,

          Warum willst Du das hinterfragen? Es ist halt so programmiert worden und es ist auch sinnvoll so.

          Nein, andersrum wäre IMO besser: Man braucht oft, z. B. in einem Formular, eine Variable:
          <input name="vorname" value="$vorname">
          Da kann man dann entweder schreiben:
          "<input name="vorname" value="$vorname">"
          oder
          '<input name="vorname" value="'. $vorname'. ">'

          Beides ziemlich umständlich. Wäre das mit den Anführungszeichen andersrum, ginge einfach:
          '<input name="vorname" value="$vorname">'

          Viele Grüße aus Freiburg,
          Marian

          --
          Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
          <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
          1. Hallo Marian,

            [...] Wäre das mit den Anführungszeichen andersrum, ginge einfach:
            '<input name="vorname" value="$vorname">'

            wer hindert dich daran, die beiden Typen von Anführungszeichen einfach auszutauschen:

            "<input name='vorname' value='$vorname'>"

            In HTML ist es schließlich egal, ob du ein einfaches oder doppeltes Anführungszeichen verwendest.

            So long,
             Martin

            --
            F: Was ist ekliger als ein angebissener Apfel mit einem Wurm drin?
            A: Ein angebissener Apfel mit einem halben Wurm.
            1. Hallo Martin,

              [...] Wäre das mit den Anführungszeichen andersrum, ginge einfach:
              '<input name="vorname" value="$vorname">'

              wer hindert dich daran, die beiden Typen von Anführungszeichen einfach auszutauschen:

              "<input name='vorname' value='$vorname'>"

              In HTML ist es schließlich egal, ob du ein einfaches oder doppeltes Anführungszeichen verwendest.

              Hm, schon, aber das sieht doof aus.
              Ich weiß echt keine bessere Erklärung, aber ich mag das einfach nicht ;-).
              Aber auf jeden Fall sind die Standard-Anführungszeichen bei HTML (und XML/SGML allgemein) die doppelten. (Es wird überall so gemacht, für das einfache Anführungszeichen gibt es gar keinen Maskierungsnamen, es wird von PHPs htmlentities() nicht kodiert, etc.)

              Viele Grüße aus Freiburg,
              Marian

              --
              Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
              <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
              1. Hi,

                Es wird überall so gemacht, für das einfache Anführungszeichen gibt es gar keinen Maskierungsnamen,

                &apos; oder &#39;

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
                1. Hi,

                  Es wird überall so gemacht, für das einfache Anführungszeichen gibt es gar keinen Maskierungsnamen,
                  &apos; oder &#39;

                  Ersteres gibt es in HTML nicht, nur in XHTML (weil's in XML vordefiniert ist)

                  cu,
                  Andreas

                  --
                  Warum nennt sich Andreas hier MudGuard?
                  Schreinerei Waechter
                  O o ostern ...
                  Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                  1. Hi,

                    &apos; oder &#39;
                    Ersteres gibt es in HTML nicht, nur in XHTML (weil's in XML vordefiniert ist)

                    Und es wird auch nicht vom IE unterstützt.

                    Gruß, Cybaer

                    --
                    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          2. Hi,

            Nein, andersrum wäre IMO besser: Man braucht oft, z. B. in einem Formular, eine Variable:
            <input name="vorname" value="$vorname">
            Da kann man dann entweder schreiben:
            "<input name="vorname" value="$vorname">"
            oder
            '<input name="vorname" value="'. $vorname'. ">'

            abgesehen von der möglichen Umkehrung: was hast Du gegen die letzte Notierung? Ich schreibe das immer so und finde es übersichtlicher.

            freundliche Grüße
            Ingo

            1. Hallo Ingo,

              '<input name="vorname" value="'. $vorname'. ">'

              Oh, da ist ein ' verrutscht:   $vorname. '">'   muss es heißen.

              abgesehen von der möglichen Umkehrung: was hast Du gegen die letzte Notierung? Ich schreibe das immer so und finde es übersichtlicher.

              Übersichtlicher finde ich das auf keinen Fall, im Gegenteil. Und es ist mehr zu schreiben.

              Viele Grüße aus Freiburg,
              Marian

              --
              Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
              <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
              1. Hi,

                Übersichtlicher finde ich das auf keinen Fall, im Gegenteil. Und es ist mehr zu schreiben.

                • Ich finde es auch übersichtlicher
                • Die fahrlässige Vermengung von Daten und Code ist ein Grundübel von PHP
                • Man ist die Trennung von ordentlichen Programmiersprachen ohnehin gewohnt.

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
              2. Hi,

                Übersichtlicher finde ich das auf keinen Fall, im Gegenteil. Und es ist mehr zu schreiben.

                Abgesehen von dem von Cybaer angesprochenem "Grundübel" habe ich mir angewöhnt, Strings in Programmiersprachen (z.B. auch Javascript) im Gegensatz zu HTML in einfache Anführungszeichen zu setzen. Und die Spezifikation, dass diese Strings dann nicht von PHP näher untersucht werden, kommt mir in dreierlei Hinsicht sehr entgegen:

                • es spart ein wenig, wenn auch kaum merkbar Zeit,
                • ich erspare mir die Analyse der Strings und evtl. nötige Maskierungen,
                • das Syntax-Highlighting kann die PHP-Anteile leichter hervorheben.

                freundliche Grüße
                Ingo

                1. echo $begrüßung;

                  Und die Spezifikation, dass diese Strings dann nicht von PHP näher untersucht werden, kommt mir in dreierlei Hinsicht sehr entgegen:

                  • es spart ein wenig, wenn auch kaum merkbar Zeit,

                  Das Argument sollte, wenn überhaupt, an allerletzter Stelle stehen, da es meist sowas von unwichtig ist, die paar Mikrosekunden eingespart zu haben.
                  Wenn man an dieser Stelle schon pinglich ist, sollte man auch bei einer Ausgabe mit echo die Bestandteile mit Komma getrennt aufführen, als zuerst einen weiteren String aus den Teilstrings zusammenzubauen und diesen dann auszugeben.

                  • ich erspare mir die Analyse der Strings und evtl. nötige Maskierungen,

                  Auch ''-Strings können nicht völlig unbeachtet gelassen werden, da zumindest ein als Inhalt vorhandenes ' nicht unmaskiert bleiben kann.

                  • das Syntax-Highlighting kann die PHP-Anteile leichter hervorheben.

                  Richtiges Syntax-Highlighting ist in der Lage, Variablen in ""-Strings entsprechend hervorzuheben.

                  Meine Vorgehensweise: Strings werden generell mit '' eingerahmt, wenn ich die zusätzliche Funktionalität der "" nicht benötige. Wann immer sinnvoll, verwende ich {s|v}printf() zum Einsetzen variabler Werte in Strings. Die Ausführungszeiten werden von mir nicht berücksichtigt. Die lohnenderen Zeitfresser sitzen meist an anderer Stelle. Im Vordergrund steht die Lesbarkeit des Quelltextes. Bei Maskierungen und verschachtelten String (über mehrere Sprachen hinweg) entscheide ich im Einzelfall.

                  echo "$verabschiedung $name";

  2. Hi kölir,

    warum kriege ich den \n zeilenumbruch bei einem echo mit ' nicht hin?
    echo "hallo\nhallo";
    führt zu gewünschtem ergebnis,
    echo 'hallo\nhallo';
    jedoch nicht.
    warum?

    Doku lesen hilft: http://www.php.net/manual/de/language.types.string.php

    ciao
    romy

    1. Hallo Romy,

      Doku lesen hilft: http://www.php.net/manual/de/language.types.string.php

      Schön das das hier immer nur "vermittler" gespielt wird.
      Ich kann diese leute nicht leiden die einfach nur verlinken.
      Es wurde hier gefragt, und es sollte diese frage auch _hier_ beantwortet werden.
      Auch wenn _Self_ das Motto ist, warum gibt dieses Forum?
      Woher kommen all diese Fragen wenn doch das Motto _Self_ ist?
      Am besten ist alle nutzen nur noch Suchmaschinen oder Bücher um an eine Antworten zu kommen. Das währe dann _Self_ und dieses Forum Closed.

      Also, Probleme sollten hier gelöst werden, und verlinken wenn das Problem gelöst wurde und evtl. weiterführende Informationen gewünscht sind.

      Oder SelfHTML verlinkt gleich auf eine Suchmaschine.

      1. Moin!

        Doku lesen hilft: http://www.php.net/manual/de/language.types.string.php
        Schön das das hier immer nur "vermittler" gespielt wird.
        Ich kann diese leute nicht leiden die einfach nur verlinken.

        Dann ignoriere sie.

        Ziel des Spiels ist es, den Fragesteller in den Zustand zu versetzen, künftig alleine klar zu kommen. Dazu gehört die Konsultation relevanter Primärliteratur. Die PHP-Dokumentation sollte also erster Anlaufpunkt sein - und ein Verweis auf eine dort befindliche Seite hat außerdem den Vorteil, dass die Info dort immer aktuell gehalten wird.

        Es wurde hier gefragt, und es sollte diese frage auch _hier_ beantwortet werden.

        Die Antwort war: Lies die Doku, da steht's drin. Ergänzt mit einem ganz konkreten Hinweis, wo genau nachzulesen ist.

        Auch wenn _Self_ das Motto ist, warum gibt dieses Forum?
        Woher kommen all diese Fragen wenn doch das Motto _Self_ ist?

        Weil Leute zu blöde sind, Dokus zu lesen, bevor sie fragen. Wirklich knifflige Knobelfragen sehe ich in diesem Forum jedenfalls kaum, die Mehrheit sind "RTFM"-Fragen.

        Am besten ist alle nutzen nur noch Suchmaschinen oder Bücher um an eine Antworten zu kommen. Das währe dann _Self_ und dieses Forum Closed.

        Gib du einfach die Antworten, die du hier im Forum selbst gerne lesen würdest, und überlasse den anderen es, Antworten so zu geben, wie sie es gerne würden. Insgesamt wird der Fragesteller dann zwei oder mehr Arten von Antworten erhalten und kann sich die für ihn beste Art heraussuchen. Somit ist allen gedient: Dem aktuellen Fragesteller, den Antwortern, und auch allen, die später mal das Problem lesen und eine andere Art von Antwort benötigen.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
      2. Hallo dieb_,

        Also, Probleme sollten hier gelöst werden, und verlinken wenn das Problem gelöst wurde und evtl. weiterführende Informationen gewünscht sind.

        oft sind Themen auf der verlinkten Seite hervorragend dargestellt. Warum sollte man gerade bei Wissensfragen nicht auf einen solchen Artikel verlinken. Damit kann man dem Fragesteller schnell und kompetent Hilfe leisten.

        Insbesondere bei Fragen des Typs „ich habe noch zu wenig Ahnung, um die Fachbegriffe zu kennen und kann daher nicht googeln“ ist ein Link oft wertvoll.

        Gruß
        Olaf

        1. Hallo Olaf,

          Ja, eigentlich ist das oder Idee nicht Schlecht.
          Aber als ich anfing mich in PHP einzuarbeiten und hier auch ab und zu fragen hatte wurde ich sehr oft Verlinkt auf die Englischsprachige Referenz von PHP was mir nun echt nicht weitergeholfen hat.
          Jetzt wo ich nunmal mein Hobby zum Beruf gemacht habe, habe ich auch kein Problem mehr mich durch diese Referenz zu arbeiten.
          Obwohl es die auch (was ich jetzt weiss) auf Deutsch gibt, trotzdem wird immer die Englische Referenz verlinkt bei den Anfänger-fragen.

          Und ein User der Ahnung vom Programmieren hat kann wohl ein paar dinge besser Erklären wie eine Referenz.
          Den auch ein profi hat mal klein angefangen und weiss wo man manchmal stecken bleibt bzw. einfach mal das verständis fehlt.

          Have a nice day
          mfg dieb_

          1. Hallo dieb_,

            ich gebe Dir recht, dass einem blutigen Anfänger mit Links auf englische w3c-Spezifikationen in der Regel nicht geholfen ist. Letztendlich geht es immer um die Frage des Respekts und um die der Verhältnismäßigkeit.

            Dieses gilt sowohl für den Antwortenden als auch für den Fragesteller.

            Auch wenn sich mal jemand im Ton vergreift oder eine Frage mit einem RTFM antwortet, so finde ich doch sowohl das fachliche als auch das kommunikative Niveau im Selfhtmlforum erfreulich hoch. Sonst wären auch viele nicht mehr dabei.

            Gruß
            Olaf

          2. hi,

            Obwohl es die auch (was ich jetzt weiss) auf Deutsch gibt, trotzdem wird immer die Englische Referenz verlinkt bei den Anfänger-fragen.

            Vielleicht, weil mancher einer automatisch in der nachschlägt.
            Das ist in vielen Fällen einfach empfehlenswerter, weil die oft aktueller und ausführlicher ist, und ausserdem schleichen sich in der Übersetzung teilweise einfach Fehler ein, seien das fachliche oder sprachliche.

            Und ein User der Ahnung vom Programmieren hat kann wohl ein paar dinge besser Erklären wie eine Referenz.

            Das mag bei komplexeren Sachverhalten schon sein - aber diese Thema hier ist doch wirklich simpel, und es gehört zu den absoluten Grundlagen im Bereich PHP.

            Den auch ein profi hat mal klein angefangen und weiss wo man manchmal stecken bleibt bzw. einfach mal das verständis fehlt.

            Tja, vielleicht weiß man das in Fällen wie diesem hier einfach nicht?
            Es steht im Manual im Grundlagenkapitel eindeutig und gut verständlich erklärt - was man da nicht verstehen kann, sehe ich hier wirklich nicht.
            Wie in vielen Fällen kann hier eigentlich auch wiede rnur vermutet werden, dass da mal wieder gar nicht selber nachgelesen wurde. Und das muss m.E. nicht noch mit einer ausführlichen Erkärung eines trivialen Sachverhalts "belohnt" werden, sondern da reicht ein Link mehr als aus.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
      3. Hallo Romy,

        Doku lesen hilft: http://www.php.net/manual/de/language.types.string.php
        Schön das das hier immer nur "vermittler" gespielt wird.
        Ich kann diese leute nicht leiden die einfach nur verlinken.
        Es wurde hier gefragt, und es sollte diese frage auch _hier_ beantwortet werden.

        Nein, wenn die Frage an einem anderen Ort erklärt wird, braucht man das hier nicht zu wiederholen. Ich bin ja auch eher ein Freund von ausführlichen Antworten, aber Romys Link führte genau zu der passenden Erklärung.

        Das einzige, was man ihr vorwerfen könnte, wäre die Tatsache, dass sie sich nicht mit dem PHP-URL Howto befasst hat. Der Link http://www.php.net/language.types.string würde nämlich zu der Sprachversion der Doku führen, deren Sprache im Browser als Lieblingssprache eingestellt ist.

        Auch wenn _Self_ das Motto ist, warum gibt dieses Forum?
        Woher kommen all diese Fragen wenn doch das Motto _Self_ ist?
        Am besten ist alle nutzen nur noch Suchmaschinen oder Bücher um an eine Antworten zu kommen. Das währe dann _Self_ und dieses Forum Closed.
        Also, Probleme sollten hier gelöst werden, und verlinken wenn das Problem gelöst wurde und evtl. weiterführende Informationen gewünscht sind.

        Diese Diskussion hatten wir erst letzte Woche. Besonders bei simplen, häufig wiederkehrenden Fragen schont ein Link auf eine FAQ oder das Manual, manchmal die Nerven aller beteiligten. Es macht nämlich nicht wirklich Spaß, zum hundertsten mal etwas zu erklären, was an anderer Stelle bereits erschöpfend behandelt wird. Ich verstehe wirklich nicht, was in diesem Fall an einem konkreter Verweis auf eine entsprechende Erklärung falsch sein soll.

        Grüße,

        Johannes

    2. Hi Ingrid_Romy_Gunnar,

      Doku lesen hilft: http://www.php.net/manual/de/language.types.string.php

      Mein Tonfall war vielleicht nicht ganz korrekt, zugegebenermaßen. Meinen Link finde ich toll, obwohl die Ausführungen von Johannes zur Verlinkung sehr spannend sind.

      An den OP:
      Mein Tonfall resultierte aus der Annahme, dass du dies hättest tatsächlich selbst rausfinden können. Vielleicht etwas voreilig, gebe ich zu.

      Ich hoffe du konntest trotzdem viel lernen dabei!?

      ciao
      romy