Der Martin: Verschachtelte Variablen ?

Beitrag lesen

Hi,

$language = 'EN';

define('DE_LINKBAR1_LINK_GUESTBOOK', 'Gästebuch');
define('EN_LINKBAR1_LINK_GUESTBOOK', 'Guestbook');

  

> über die Variable `$language`{:.language-php} wird ermittelt, welche Sprache eingestellt ist.  
  
das hilft dir aber bei dieser Konstellation wenig.  
  

> Wie also kann ich jetzt diese beiden Variabeln kombinieren und die Konstante "`EN_LINKBAR1_LINK_GUESTBOOK`{:.language-php}" ausgeben?  
  
Gar nicht. Konstanten sind in PHP nur sehr eingeschränkt brauchbar.  
  

> Sowas wie `$$language."_LINKBAR1_LINK_GUESTBOOK"`{:.language-php} wird glaub ich nicht funktionieren.  
  
Nein. Selbst wenn man es richtig klammern würde, ergäbe das z.B. den Variablennamen $DE\_LINKBAR1\_LINK\_GUESTBOOK - eine solche Variable gibt es bei dir aber nicht, es ist schließlich eine benannte Konstante.  
  

> Wenn alles nicht geht, dann muss ich wohl auf Arrays zurückgreifen; ist aber nicht das, was ich ich mir vorgestellt habe.  
  
Warum nicht? Das wäre die sauberste (und IMHO schönste) Lösung:  
  
~~~php
$LINKBAR1_LINK_GUESTBOOK = Array  
 ( 'de'=> 'Gästebuch',  
   'en'=> 'Guestbook'  
 );  
[...]  
echo $LINKBAR1_LINK_GUESTBOOK[$language]

Was gefällt dir an diesem Ansatz nicht?
Ach so, und warum übrigens 'Gästebuch' und nicht 'Gästebuch'? Wenn du nicht gerade US-ASCII als Zeichencodierung verwendest, kannst du Umlaute direkt im Klartext notieren.

So long,
 Martin

--
Vielseitigkeit: Von vielen Dingen keine Ahnung haben.