Martin: Wie mach ich aus 3 Variablen eine?

Hi :)

Ich fang grad erst an mit PHP, aber ich hab ein Problem aus 3 Variablen eine zu machen... wenn ich

$name1 = "ich";
$name2 = "lerne";
$name3 = "PHP";

Und das ist alles in die Variable $name ... wie geht das? Hab's so probiert:

$name = $name1.=$name2.=$name3;

Naja, es fehlen in diesem Beispiel die Leerzeichen zwischen den Wörtern, aber es klappt sowieso nicht.

Was mache ich falsch?

Martin

  1. Hallo

    Du kennst http://de3.php.net/manual/de/language.operators.string.php?

    Grüße

    David

    --
    "Nobody will ever need more than 640k RAM!"
    1981 Bill Gates
    1. Hi David,
      Wat den mit Dir los?
      Zu wenig getrunken?
      Bist doch sonst nicht so unhöfflich!
      Viele Grüße TomIRL

      1. Hallo Tom,

        Zu wenig getrunken?

        Da ich kein alkoholliebender mensch bin, bin ich wohl eher mit dem falschen Fuß augestanden ;)
        In der Tat war das vielleicht etwas kurz, aber auf der Seite steht schon alles Wissenswerte drauf.

        Bist doch sonst nicht so unhöfflich!

        Nunja, ich werde mich das nächste Mal anstrenge :)
        Aber danke für das "sonst höflich"

        Viele Grüße TomIRL

        Ebenso viele Grüße

        David

        --
        "Nobody will ever need more than 640k RAM!"
        1981 Bill Gates
        1. Hallo

          Und um mich gleich zu bessern: Man vergesse nicht die Variante:
          $name1 = "Hallo,";
          $name2 = "du";
          $name3= "da";

          $name = "$name1 $name2 $name3!";

          Grüße

          David

          --
          "Nobody will ever need more than 640k RAM!"
          1981 Bill Gates
      2. Halihallo TomIRL

        Zu wenig getrunken?

        Hilft das? - Wo is mei Capirinha! ;-)

        Bist doch sonst nicht so unhöfflich!

        Unhöflich? - Das war nicht unhöflich, sondern Konstruktiv und meiner Meinung nach die
        einzig wirklich auf lange Sicht hilfreiche Antwort in diesem Thread. Was hat Martin
        davon, wenn man ihm die Lösung einfach so vor den Latz knallt? - Denn zu lernen gelernt
        hat er damit nicht und wird das nächste mal wieder ins Forum gestürmt kommen, als sich
        mit der Dokumentation befasst zu haben (was IMHO wesentlich sinnvoller ist).

        Zudem nehmt ihr dem armen Martin jedwelchen Spass und Eigeninitiative an der Sache. Es
        macht wesentlich mehr Sinn, wenn man das Problem selber lösen kann (und der Lerneffekt
        ist zudem grösser), z. B. anhand einer Dokumentation.

        So, David, meiner Meinung nach hast du genau richtig gepostet :-)

        Viele Grüsse

        Phi*fighting-for-RTFM*lipp

        --
        RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
        Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
  2. ich würd ein array benutzen!

    $name[1] = "ich";
    $name[2] = "lerne";
    $name[3] = "PHP";

    $name = $name[1]." ".$name[2]." ".$name[3];

    oder

    foreach ( $name as $value )
    {
        $Name .= $value." ";
    }
    echo $Name;

    1. hi stefan,

      ich würd ein array benutzen!

      nix dagegen einzuwenden, aber wenn schon dann würde ich statt dieser verkettungs-zuweisung

      $name = $name[1]." ".$name[2]." ".$name[3];

      vorschlagen, gleich die dafür vorgesehene array-funktion implode() mit einem space als trenner zu verwenden.

      ;-)
      nix für ungut,
      wahsaga

  3. Moin Martin,
    Ich hab meinen Sozialen Tag heute!
    Probiers mal so:
    Das entscheidende sind Strings sind in "" zu setzen!
    Auch bei Vergleichen etc. immer schön "" oder auch'' benutzen.

    $name1 = "ich";
    $name2 = "lerne";
    $name3 = "PHP";

    $name = "$name1 "."$name2 "."$name3";
    print ("$name");

    Geht auch so:
    $name1 = "ich ";
    $name2 = "lerne ";
    $name3 = "PHP ";

    $name = "$name1"."$name2"."$name3";
    print ("$name");

    Viel Spaß beim üben!

    1. habe d'ehre

      Moin Martin,
      Ich hab meinen Sozialen Tag heute!
      Probiers mal so:
      Das entscheidende sind Strings sind in "" zu setzen!
      Auch bei Vergleichen etc. immer schön "" oder auch'' benutzen.
      Geht auch so:
      $name1 = "ich ";
      $name2 = "lerne ";
      $name3 = "PHP ";
      $name = "$name1"."$name2"."$name3";
      print ("$name");

      Du willst jetzt nicht ernsthaft behaupten, dass die Variablen zwischen "" notiert werden *muessen*.

      Sein Fehler liegt schlichtweg an den = nach . fuer die Verkettung.
      $name = $name1.=$name2.=$name3;

      .= kaeme nur in Betracht bei

      $name  = $name1;
      $name .= $name2;
      $name .= $name3;

      --
      carpe diem
      Wilhelm
      1. Du willst jetzt nicht ernsthaft behaupten, dass die Variablen zwischen "" notiert werden *muessen*.

        Nö Strings gehören zwischen die "" sonst nichts!
        Hab ich aber auch so geschrieben oder?

        Sein Fehler liegt schlichtweg an den = nach . fuer die Verkettung.
        $name = $name1.=$name2.=$name3;

        Das ist wohl wahr!

        1. Halihallo TomIRL

          Du willst jetzt nicht ernsthaft behaupten, dass die Variablen zwischen "" notiert werden *muessen*.
          Nö Strings gehören zwischen die "" sonst nichts!
          Hab ich aber auch so geschrieben oder?

          Ja, ist aber schlecht. Wenn die Variablen (und das müssen bei weitem keine Strings sein)
          in Quotes gesetzt werden, muss der Parser das jedesmal durchforsten und die Variablen-
          namen durch deren Werte ersetzen, was beim einfachen concat (nur '.' ohne '"') nicht
          gemacht werden müsste. Das In-Quotes-Schreiben von Variablen macht nur bedingt Sinn und
          bedingt z. B. hier:

          $name = "$name1 $name2 $name3";

          somit kann man auf den langsamen Operator '.' gänzlich verzichten und auf das
          schnellere parsen von Variablen in Quotes zurückgreifen. Eine Kombination derbeiden
          wie du es vorschlägst ist nicht performant.

          So ist dies jedenfalls bei Perl, ich nehme jedoch stark an, dass dies auch bei PHP so
          ist.

          In http://forum.de.selfhtml.org/archiv/2003/5/46801/#m255467 hatte ich das schonmal
          ausführlicher gepostet, aber wie gesagt: ich _nehme an_, dass dies in PHP gleich ist,
          _weiss_ es jedoch nicht mit Sicherheit.

          Viele Grüsse

          Philipp

          --
          RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
          Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
          1. Hallo Philipp

            ausführlicher gepostet, aber wie gesagt: ich _nehme an_, dass dies in PHP gleich ist,
            _weiss_ es jedoch nicht mit Sicherheit.

            Du hast Recht ich habs mal eben aus dem Handgelenk geschrieben!
            Deshalb der Flüchtigkeitsfehler!
            Viele Grüße aus Berlin

            1. Halihallo TomIRL

              ausführlicher gepostet, aber wie gesagt: ich _nehme an_, dass dies in PHP gleich ist,
              _weiss_ es jedoch nicht mit Sicherheit.
              Du hast Recht ich habs mal eben aus dem Handgelenk geschrieben!
              Deshalb der Flüchtigkeitsfehler!

              Wieso? - Es funktioniert ja so, wie du es vorschlägst :-)
              Ich wollte nur darauf hinweisen, dass dies anders schneller und sogar einfacher zu
              bewerkstelligen ist; das war keine Kritik, sondern eine "Bemerkung" oder "Feature
              Request".

              Viele Grüsse

              Philipp

              --
              RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
              Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
  4. Hi :)

    Hallo

    $name1 = "ich";
    $name2 = "lerne";
    $name3 = "PHP";

    Und das ist alles in die Variable $name ... wie geht das? Hab's so probiert:

    $name = $name1.=$name2.=$name3;
    Was mache ich falsch?

    $name = $name1.$name2.$name3;

    bzw. mit Leerzeichen:

    $name = $name1." ".$name2." ".$name3;

    viel Spass noch...
    Philip