Jörg Reinholz: Verständnisfrage andere Zuweisung in PHP

Beitrag lesen

Moin!

Beispiel:

<?php
// Beim Schreiben des Pogrammms ist nicht bekannt, welche Variable einen bestimmten Wert (hier: 'bar') erhält.
// Aber während des Programmablaufes ist es das. Der Name der Variable soll 'foo' sein
$vName='foo';
// So wird es gemacht:
${$vName}='bar';  // $$vName='bar'; geht übrigens auch!
//Und das klappt auch:
echo $foo, "\n";

  1. Das weicht aber schon von Deinem Beispiel ab...
  2. Die Verwendung wird allgemein (aus den gleichen Gründen wie die Verwendung von eval auch) missbilligt. Grund: Es tauchen wie hier Variablen auf, deren Herkunft höchst mühseelig zu ermitteln ist und es werden Variablen ggf. überschrieben ohne dass dieses dem Plan des Programmierers entspricht. Besser wäre es allenfalls einen Hash zu benutzen:
<?php
// Beim Schreiben des Pogrammms ist nicht bekannt, welche Variable einen bestimmten Wert (hier: 'bar') erhält.
// Aber während des Programmablaufes ist es das. Der Name der Variable soll 'foo' sein:
$vName='foo';
// So wird es gemacht:
$vars[$vName]='bar';
//Und das klappt auch:
echo $vars['foo'], "\n";

Jörg Reinholz