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

Форум PHP

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

 

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

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

тема: Переменные в переменной - как правильно?
 
 автор: Владимир22   (11.08.2011 в 17:51)   письмо автору
 
 

Чтобы не выводить постоянно кучу повторяющихся кодов переменных, единожды пишу так:
$all = "$log='1'; $pas='1'; $ses=$sesid;";
А потом везде просто:
echo $all;
НЕ получается + понимаю,что неправильный синтаксис, но тогда как?

  Ответить  
 
 автор: cheops   (11.08.2011 в 18:00)   письмо автору
 
   для: Владимир22   (11.08.2011 в 17:51)
 

>echo $all;
Я так понимаю, вы хотите создать переменные в строке? Тогда нужно использовать eval()
eval($all);

  Ответить  
 
 автор: Владимир22   (11.08.2011 в 18:17)   письмо автору
 
   для: cheops   (11.08.2011 в 18:00)
 

$all = "$log='1'; $pas='1'; $ses=$sesid;";
echo eval($all);

Если так, то ругается чуть ли не матом - parse error и пр. ...(

  Ответить  
 
 автор: cheops   (11.08.2011 в 19:05)   письмо автору
 
   для: Владимир22   (11.08.2011 в 18:17)
 

Вот так попробуйте
<?php
  $all 
'$log="1"; $pas="1"; $ses=$sesid;'
  eval(
$all);
  echo 
$log;
?>

  Ответить  
 
 автор: Владимир22   (11.08.2011 в 19:33)   письмо автору
 
   для: cheops   (11.08.2011 в 19:05)
 

Не работает - пишет "unexpected "=" в строчке, где $all =....

  Ответить  
 
 автор: cheops   (11.08.2011 в 19:35)   письмо автору
 
   для: Владимир22   (11.08.2011 в 19:33)
 

У вас перед этой строкой что-нибудь есть? Если есть, то что?

  Ответить  
 
 автор: Владимир22   (11.08.2011 в 19:46)   письмо автору
 
   для: cheops   (11.08.2011 в 19:35)
 

Нет, отрабатываю в голом тестовом файле (в Денвере), где только эти три строчки.
<?php 
  $all 
"$log='1'; $pas='1';";  
  eval(
$all); 
  echo 
$log
?>

Выдаётся ошибка...

  Ответить  
 
 автор: cheops   (11.08.2011 в 19:54)   письмо автору
 
   для: Владимир22   (11.08.2011 в 19:46)
 

Если используете двойные кавычки, нужно экранировать символ $ (иначе интерпретатор будет пытаться подставить в строку несуществующие переменные $log и $pas)
<?php  
  $all 
"\$log='1'; \$pas='1';";   
  eval(
$all);  
  echo 
$log;  
?>
Собственно поэтому чаще и используют одиночные кавычки для формирования такой строки.

  Ответить  
 
 автор: Владимир22   (11.08.2011 в 20:06)   письмо автору
 
   для: cheops   (11.08.2011 в 19:54)
 

Так заработало!!! Ещё раз, спасибо Вам! Ваш форум - просто вне конкуренции. О других форумах уже много лет даже знать не хочу.

  Ответить  
Rambler's Top100
вверх

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