Joschy: Mehrere Variablen aneinanderhängen und ausgeben

Hallo Forumsleser, ich habe mehrere Variablen, die über die Link-URL übergeben werden:

$a ="Ich";
$b ="bin";
$c ="Joschy";

diese will ich ohne Leerzeichen per echo ausgeben:
etwa so: echo $a$b$c;

Das klappt bei mir prima, aber ist das denn vernünftig? Oder muss da noch jeweils ein punkt dazwischen, damit klar ist wo wann welche variable zuende ist?! Kann mir jemand den korrekteren Syntax hier aufzeigen? ich will nichts falsch machen nur weil es eben gerade mal hier funktioniert.

grüße Joschy

  1. Moin,

    Hallo Forumsleser, ich habe mehrere Variablen, die über die Link-URL übergeben werden:

    $a ="Ich";
    $b ="bin";
    $c ="Joschy";

    diese will ich ohne Leerzeichen per echo ausgeben:
    etwa so: echo $a$b$c;

    Das klappt bei mir prima, aber ist das denn vernünftig? Oder muss da noch jeweils ein punkt dazwischen, damit klar ist wo wann welche variable zuende ist?! Kann mir jemand den korrekteren Syntax hier aufzeigen? ich will nichts falsch machen nur weil es eben gerade mal hier funktioniert.

    also, wenn du wenn du String-Variablen verketten willst, dann benutz den Punkt. Das ist syntaktisch richtig.
    Das es bei wie oben beschrieben klappen soll, kann ich mir nicht vorstellen...

    Grüsse,
      Juan

  2. Hi,

    $a ="Ich";
    $b ="bin";
    $c ="Joschy";

    diese will ich ohne Leerzeichen per echo ausgeben:
    etwa so: echo $a$b$c;

    Das klappt bei mir prima,

    nein, das geht so nicht:

    ag@bart:~$ php -r '$a = "foo"; $b = "bar"; echo $a$b;'

    Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in Command line code on line 1

    In Anführungszeichen dagegen würde es funktionieren:

    ag@bart:~$ php -r '$a = "foo"; $b = "bar"; echo "$a$b";'
    foobar

    Warum ist das so? echo erwartet ein oder mehrere Argumente vom Typ String. Das eine Argument »$a$b«, welches du mittels

      
    echo $a$b$c;  
    
    

    an »echo« übergibst, wird von PHP als Variable angesehen ("Variables in PHP are represented by a dollar sign followed by the name of the variable"). Das Zeichen »$« ist in Variablennamen allerdings nicht erlaubt, daher wird o.a. Fehler geworfen.

    Oder muss da noch jeweils ein punkt dazwischen, damit klar ist wo wann welche variable zuende ist?!

    ja, auch das würde funktionieren:

    ag@bart:~$ php -r '$a = "foo"; $b = "bar"; echo $a . $b;'
    foobar

    ...und wäre mithin wohl am saubersten.

    Kann mir jemand den korrekteren Syntax hier aufzeigen?

    syntaktisch korrekt ist alles, was du unter dem Kapitel Variable parsing auf o.g. Seite nachlesen kannst. Schneller ist es allemal, die Variablen nicht innerhalb doppelter Anführungszeichen parsen zu lassen, siehe z.B. dieses Archivposting [1] ff., was bei kleinen Applikationen allerdings vernachlässigbar ist.

    [1] Wobei ich nicht weiß, ob die Unterschiede aktuell noch so groß sind.

    Gruß,
    Andreas.

    1. gudn tach!

      ag@bart:~$ php -r '$a = "foo"; $b = "bar"; echo $a . $b;'
      foobar

      ...und wäre mithin wohl am saubersten.

      oder
        echo $a,$b;

      dann werden die variablen nicht mehr explizit vor der ausgabe konkateniert.

      prost
      seth