Я думаю, вы неправильно поняли, для чего используется константа(). Если вам нужно только получить доступ к константе, сделайте это прямо: print FOO;
Если вы не знаете, к какой константе вы хотите получить доступ, вам понадобится константа(). То есть вы можете сделать «переменные переменные» следующим образом:
$name = 'var1';
$var1 = 'value something or other';
print $$name; // prints the value of $var1: 'value something or other' because:
${$name} -> ${"var1"} -> $var1 -> 'value something or other'
I.e. вы заменяете имя переменной переменной.
Вы не можете сделать это с константами:
$name = 'CONST1';
define('CONST1', 'value something or other');
print $name; // prints the value of $name: 'CONST1'
Вы должны будете использовать постоянную():
print constant($name); // prints 'value something or other'
константа (Foo) даже не действует. Функция constant() принимает строковый аргумент (не говоря уже о том, что нет аргументов постоянного типа), поэтому он должен быть постоянным («FOO»). – deceze