PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: $$ statt $ als Variablenprefix


mf_2
2007-10-12, 10:27:57
Hallo,

Wieso funktioniert dieses Script:


$vars=explode(",","subject,message,eMail,aktion,Name,Vorname");

foreach($vars as $v){
if ($_GET[$v]!=""){$$v=$_GET[$v];}
if ($_POST[$v]!=""){$$v=$_POST[$v];}
}


Das verhält sich zumindest scheinbar genauso wie wenn man ganz regulär $v statt $$v geschrieben hätte.

Ist das wirklich identisch? War es nur ein Tippfehler im Code (ist von jemand anders)?

Gast
2007-10-12, 10:34:57
http://de.php.net/manual/de/language.variables.variable.php

Das ist kein Tippfehler, sondern ein Feature.

rotalever
2007-10-12, 12:20:25
Was sollen einem den variable Variablen außer Verwirrung bringen?

darph
2007-10-12, 12:30:00
Was sollen einem den variable Variablen außer Verwirrung bringen?
Verwirrung. (y)


Naja, in dem Fall wollte sich der Programmierer wohl Tipparbeit ersparen.

Anstatt 200 mal zu schreibt:
$name = $_GET["name"];
$given_name = $_GET["given_name"];
$age = $_GET["age"];
// ...

usw hat er einfach einmal ein Array $lala = array("name", "given_name", "age") etc geschrieben und ist einmal durch das Array gelaufen.

Das ist natürlich nur sinnvoll, wenn die Daten, die verarbeitet werden sollen, vorher nicht bekannt sind und selbst variabel sind.

Aber selbst dann gibt es wohl elegantere Alternativen. ;(

rotalever
2007-10-12, 13:34:38
Aber selbst dann gibt es wohl elegantere Alternativen. ;(
Zum Beispiel Arrays, die so aussehen

$arr["bla"] = "abc";
$arr["unknown"] = "wow";