Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: про создание переменных из значений других
 
 автор: ref   (24.07.2004 в 10:22)   письмо автору
 
 

давно искал это -)
eval("\$active$id_menu = 1;");
я так понимаю это то что я искал? -)
можно поподробнее про это?
заранее большое спасибо!

   
 
 автор: cheops   (24.07.2004 в 11:14)   письмо автору
 
   для: ref   (24.07.2004 в 10:22)
 

Функция eval позволяет интерпретировать строку, переданную ей в качестве аргумента как PHP-код. Внутри строки действуют те же правила, что и в обычных строках PHP обрамлённых двойными кавычками, т.е. действуют те же экранирующие символы.
Код
<?php
  $id_menu 
3;
  
// Первый символ будет интерпретироваться как знак $, а
  // вместо $id_menu будет подставлено значение 3.
  
eval("\$active$id_menu = 1;");
?>

аналогичен
<?php
  $active3 
1;
?>

Если экранирование знака $ (\$) в первом примере убрать, то выражение будет интерпретироваться как 3 = 1, так как подстрока $action будет интерпретироваться как переменная, которую PHP создаст и присовит ей пустую строку.

PS Использовать или нет функцию eval дело вкуса и стиля, лично я ей предпочитаю конструкцию $$:
<?php
  $id_menu 
3
  
$str "active$id_menu";
  $
$str 1// $active3 = 1;
?>

Но и функция eval и конструкция $$ несколько запутывают код и без сильной необходимости ими лучше не пользоваться.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования