Tom Collins: Anführungszeichen immer maskieren?

Hallo,

ich fange gerade mit PHP an und habe folgende Frage:

In PERL kann ich das nervende Maskieren von " vermeiden, wenn ich einen String mit qq~    ~; einschließe.

Gibt es etwas vergleichbares in PHP?

Gruß von TomC

  1. Hallo,

    Du kannst es z.B. so machen:
    $var = 'Text mit "Anführungszeichen"';

    Grüße, Alex

    1. Hi Alex,

      Du kannst es z.B. so machen:
      $var = 'Text mit "Anführungszeichen"';

      Dann funktioniert, sofern ich bisher alles richtig verstanden haben, folgendes nicht mehr:

      echo '<a href="http://www.example.com/foo.php">$zeile->ma_nachname</a>';

      1. Hallo,

        Dann funktioniert, sofern ich bisher alles richtig verstanden haben, folgendes nicht mehr:

        echo '<a href="http://www.example.com/foo.php">$zeile->ma_nachname</a>';

        So wird es eben angezeigt. Wenn der Wert der Variable angezeigt werden soll, muss es so geschrieben werden:

        echo '<a href="...">'.$var.'</a>';

        Grüße, Alex

        1. echo '<a href="...">'.$var.'</a>';

          Hat diese Schreibweise gegenüber der Maskierung einen Vorteil (wenn man mal von der besseren Lesbarkeit absieht)?

  2. Moin!

    In PERL kann ich das nervende Maskieren von " vermeiden, wenn ich einen String mit qq~    ~; einschließe.

    Gibt es etwas vergleichbares in PHP?

    Mir ist nichts bekannt. Du hast in PHP die zwei String-Delimiter " und ' zur Verfügung. Innerhalb von ' werden Variablennamen nicht evaluiert, innerhalb von " werden sie es.

    Aber es gibt in PHP vielleicht noch andere Möglichkeiten:
    Zunächst hast du jederzeit die Möglichkeit, den PHP-Modus zu verlassen, indem du ?> schreibst. Alle folgenden Zeichen werden 1:1 an den Browser durchgereicht, bis wieder <?php kommt. Damit hast du im Prinzip eine Art Here-Document.

    Aber auch das klassische Here-Document funktioniert: http://www.php.net/manual/de/function.print.php, letztes print-Beispiel.

    Du hast aber leider keine Möglichkeit, andere als die zwei String-Delimiter zu verwenden, so wie du es bei Perl tun kannst.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|