Klaus: Warum zwei $ Zeichen ($$x)

Guten Morgen zusammen

Ich bin gerade dran, eine kleines Online Quiz zu machen, bzw zu verstehen. Ich habe ein Script gefunden, dass bei einer Variable zwei $ Zeichen vorstellt. So im Sinne if ($$q == $answer). Nun frage ich mich, was bedeuten zwei $ Zeichen vor einer Variable?

Danke schon mal für eure Auskunft.

Gruss
Klaus

  1. Hallo Klaus,

    in deinem Skript wird irgendwo eine Variable $q definiert, z.B. $q = "dummy". Weiterhin wird eine Variable $dummy = irgendetwas gesetzt.
    "if($$q == $answer)" bedeutet dabei nichts anderes als "if($dummy == $answer)", es wird also auf die Variable $dummy referenziert.

    Gruß
    almi

    Guten Morgen zusammen

    Ich bin gerade dran, eine kleines Online Quiz zu machen, bzw zu verstehen. Ich habe ein Script gefunden, dass bei einer Variable zwei $ Zeichen vorstellt. So im Sinne if ($$q == $answer). Nun frage ich mich, was bedeuten zwei $ Zeichen vor einer Variable?

    Danke schon mal für eure Auskunft.

    Gruss
    Klaus

    1. Hallo almi,

      in deinem Skript wird irgendwo eine Variable $q definiert, z.B. $q = "dummy". Weiterhin wird eine Variable $dummy = irgendetwas gesetzt.
      "if($$q == $answer)" bedeutet dabei nichts anderes als "if($dummy == $answer)", es wird also auf die Variable $dummy referenziert.

      Vielen Dank für deine Ausführungen!

      Gruss
      Klaus

  2. Hallo Klaus.

    Ich bin gerade dran, eine kleines Online Quiz zu machen, bzw zu verstehen. Ich habe ein Script gefunden, dass bei einer Variable zwei $ Zeichen vorstellt. So im Sinne if ($$q == $answer). Nun frage ich mich, was bedeuten zwei $ Zeichen vor einer Variable?

    Das sind dynamische Variablen:
    http://www.selfphp.de/funktionsreferenz/kontroll_mechanismen/dynamische_variablen.php

    Schönes Wochenende, H2O

    --
    <!--[if IE]> Download Opera <![endif]-->
    Selfcode: [ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%25%20fl%3A(%20br%3A%3C%20va%3A)%20ls%3A%5B%20fo%3A%7C%20rl%3A(%20n4%3A(%20ss%3A)%20de%3A%3E%20js%3A%7C%20ch%3A%3F%20sh%3A(%20mo%3A%7C%20zu%3A%7D)
    1. Hallo H2O,

      [...] was bedeuten zwei $ Zeichen vor einer Variable?

      Das sind dynamische Variablen:
      http://www.selfphp.de/funktionsreferenz/kontroll_mechanismen/dynamische_variablen.php

      Man nennt sie auch "indirekte Referenz"
      Die eine Variable enthält die Referenz auf die andere.
      http://de.php.net/manual/de/language.variables.variable.php

      Unter einer dynamischen Speicherverwaltung (also "dynamischen Variablen") versteht man eher Datenstrukturen, die sich ihrer Größe und Form nach erst während der Laufzeit ergeben.

      Dafür eignen sich in PHP aber besser die "Arrays", die eigentlich dynamisch verkettete Bäume darstellen. Sie sind also keine statischen Arrays. Der Typ-Klassifizierer wird hier also fälschlich benutzt.

      Außerdem könnten noch Aliase von Interesse sein.
      http://de3.php.net/manual/de/language.variables.php

      $bar = &$foo;            // Zeiger auf $foo in $bar erzeugen.

      LG
      Chris

      1. Hallo Klaus & H2O,

        kleiner Nachtrag. Das hatte ich eben gesucht im Manual und nicht gleich gefunnden

        http://de3.php.net/manual/de/language.references.php

        LG
        Chris