как использовать PHP-константу, которая извлекается из базы данных - PullRequest
1 голос
/ 14 мая 2010

Можете ли вы прочитать имя константы PHP из базы данных и использовать его внутри переменной php, чтобы отобразить значение константы для использования в меню?

Например, вот что я пытаюсь сделать

В SQL: select menu_name AS php_CONSTANT where menu_id=1 возвращаемое значение будет L_HOME, которое является именем CONSTANT на странице конфигурации php. Страница конфигурации php выглядит следующим образом define('L_HOME','Home'); и загружается перед вызовом базы данных. Использование php было бы $db_returned_constant, которое имеет значение L_HOME, которое пришло из вызова db, тогда я поместил бы это в строку, такую ​​как $string = '<ul><li>' . $db_returned_constant . '</li></ul>', и таким образом возвратил бы строку, которая выглядит как $string = '<ul><li><a href="#" onclick="path_from_db">Home</a></li></ul>'.

Подводя итог тому, что я пытаюсь сделать

  1. Загрузить файл конфигурации на основе языковых предпочтений
  2. запросить в БД имя меню, которое является именем CONSTANT в файле конфигурации, загруженном на первом этапе, а также получить ссылку на menu_link, которая используется в событии "onclick".
  3. Используйте переменную php для хранения имени CONSTANT
  4. Поместите переменную в строку, которая выводит echo'd, чтобы создать меню, отображающее значение CONSTANT.

Надеюсь, в этом есть смысл ... можно ли вообще использовать такую ​​константу?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 мая 2010
define('L_HOME','Home');
$db_returned_constant = 'L_HOME'; // value actually retrieved from db
echo constant($db_returned_constant);

// will output 'Home'
2 голосов
/ 14 мая 2010

Конечно, просто извлеките имя константы в строку и затем используйте <a href="http://www.php.net/manual/en/function.constant.php" rel="nofollow noreferrer">constant</a>.

...