3

I have a variable $language, which can be: "en", "nl", or "fr".I have 3 other variables $menu_en, $menu_fr and $menu_fr.

I have a php page where I want the menu to appear in any of the 3 languages.

I tried this:

echo '$menu_' . $language;

What I want is the result to be the value of $menu_en and not the string $menu_nl.

How can I do this? Can eval() help?

Rizier123
  • 58,877
  • 16
  • 101
  • 156
Paulcraey
  • 373
  • 4
  • 14

2 Answers2

4

How about using an array?

$menu = array("en" => "Hi!", "it" => "Ciao!", "es" => "Hola!");

$language = "en";
echo $menu[$language]; // this will print Hi!
echo $menu["it"]; // will print Ciao!

Some ref on arrays: http://php.net/manual/it/language.types.array.php

Reversal
  • 622
  • 5
  • 19
3

You can use variable variables - like so:

$menuVar = 'menu_'.$language;
echo $$menuVar;

Note the double dollar signs.

Ref: http://php.net/manual/en/language.variables.variable.php

user2182349
  • 9,569
  • 3
  • 29
  • 41