dedlfix: Was bewirkt ein Dollarzeichen mit geschweifter Klammer um Array?

Beitrag lesen

Hi!

foreach( $array as $k => $v ) {

$$k = $v;
}

  
[extract()](http://de.php.net/manual/en/function.extract.php) scheint dir nicht bekannt zu sein.  
  

> Kann auch ziemlich praktisch sein, z.B. wenn man eine Liste von Key-Value-Pairs in die entsprechend benannten (und befüllten) Variablen umwandeln will, um ein Template zu rendern in dem alle Platzhalter als PHP-Variablen realisiert werden:  
  
Und dann hast du im Template solche Stellen stehen gehabt?  
  
  <?php echo $foo ?>  
  
Das wäre nicht gut, denn dann fehlte in der Regel ein htmlspecialchars(). Es anderswo im Code zu verwenden macht es nicht einfacher, zu erkennen, dass es da ist, besonders wenn du dann noch mit v.V. hantierst.  
  
  <?php echo htmlspecialchars($foo) ?>  
  
ständig zu notieren finde ich unpraktisch, weswegen ich mir da eine Funktion schriebe, die nicht nur Schreibarbeit abnimmt.  
  
  function h($name) {  
    echo htmlspecialchars($GLOBALS['templatevalues'][$name]);  
  }  
  
Da kann man gern noch weitere Funktionalität unterbringen, wenn benötigt. Die Verwendung von $GLOBALS (oder global) ist zwar nicht gerade der Renner, aber bei einer Projektgröße, die mit diesem minimalistischen Template-Ansatz auskommt, durchaus vertretbar. Das Ergebnis wäre dann:  
  
  <?php h("foo") ?>  
  
Schon wesentlich kürzer als bei korrekter Verwendung von einzelnen Variablen und ist immer noch praktisch, oder nicht?  
  
  
Lo!