steffen: verständnisfrage

hi,

$td = "<td>".$link[0]."<img src="./$bild_datei.JPG">".$link[1]."</td>";

wieso funktioniert das, obwohl die variable $bild_datei nicht in ".$bild_datei." gemacht wurde?

Kann mir das wer erklären?

mfg steffen

  1. Hi Steffen,

    weil der PHP-Interpreter Variablen innerhalb von " durch ihren Wert ersetzt.

  2. Hi Steffen,

    schau mal hier:
    http://de.php.net/manual/en/language.types.string.php#language.types.string.parsing

    Da kannst Du es nachlesen (es hat etwas mit dem parsen von Strings
    zu tun)

    Viele Grüße
    annA

    1. hi,

      wieso funktioniert das ganze dann nicht bei arrays, oder wieso schreibt man öfters dann ".$var[1]." ? und nicht gleich

      echo "hi $var[1]";

      sollte ja gehen oder?

      mfg steffen

      1. Hi Steffen,

        es ist eben einfach sauberer, es zwischen Punkte zu packen,
        dann passieren nämlich keine unerwarteten Dinge

        probier mal diesen Code:

        <?php

        $var = array( "hallo" );
        $var = "ciao";

        echo "$var[0] $var";

        ?>

        Gruß
        annA

        1. naja, ich gebs zu... das Beispiel hinkt etwas *g*
          habe wohl zu wenig geschlafen...

          aber hier sind Beispiele, warum das andere Verfahren sicherer ist:

          $beer = 'Heineken';
          echo "$beer's Geschmack ist großartig";  // funktioniert, "'" ist kein gültiges
                                                   // Zeichen für einen Variablennamen
          echo "Er hat einige $beers getrunken";   // funktioniert nicht, 's' ist ein gültiges
                                                   // Zeichen für einen Variablennamen
          echo "Er hat einige ${beer}s getrunken"; // funktioniert

  3. hi,

    Hai,

    $td = "<td>".$link[0]."<img src="./$bild_datei.JPG">".$link[1]."</td>";

    wieso funktioniert das, obwohl die variable $bild_datei nicht in ".$bild_datei." gemacht wurde?

    Kann mir das wer erklären?

    Also, php ersetzt innerhalb eines Strings die Variablen durch ihren Wert. Dies allerding nur, wenn der String in " eingefasst wurde. Wenn du das automatische ersetzen explizit ausschalten willst, dann musst du den String in Hochkomma (') setzen. Dies kann mitunter wichtig sein, wenn du im String ein Dollarzeichen verwenden willst.

    <? $Name = "Steffen"; echo "Hallo $Name"; ?>
    -> Hallo Steffen

    <? $Name = "Steffen"; echo 'Hallo $Name'; ?>
    -> Hallo $Name

    mfg steffen

    Thats all Folks
     René