Автор Тема: Проблема с ссылками ($$)  (Прочитано 3132 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Проблема с ссылками ($$)
« : 11 Июня 2003, 13:44:12 »
Имеем вот такой код:

$arr
=array("4","6","9","12","18","24","36");
ob_start();
print_r($zrow);
fwrite($fp,ob_get_contents());
ob_end_clean();
for(
$i=0;$i<sizeof($arr);++$i)
	
{
	
$val1="zrow[stend_".$arr[$i]."r]";
	
$val2="zrow[stend_".$arr[$i]."u]";
	
if(
$arr[$i]=="36"){$val3="zrow[stend_".$arr[$i]."o]";}else{$val3="";}
	
if($
$val1=="yes" or $$val2=="yes" or $$val3=="yes")
	
	
{
	
	
$pdf->SetWidths(array(50,20,20,22,22,22,25));
	
	
$pdf->Row(array("Стенд $arr[$i] кв.м","_","_","_","_","_","_"));
	
	
}
	
fwrite($fp,"$$val1-".$$val1.":::");
	
fwrite($fp,"$$val2-".$$val2.":::");
	
fwrite($fp,"$$val2-".$$val3."\\r\\n");
	
}
fclose($fp);

Test.txt:

Array
(
    [
id] => 6
    
[user_id] => 4
    
[status] => no
    
[orgnazv] => 
    [
stend_4r] => yes
    
[stend_4u] => no
    
[stend_6r] => no
    
[stend_6u] => yes
    
[stend_9r] => yes
    
[stend_9u] => no
    
[stend_12r] => no
    
[stend_12u] => yes
    
[stend_18r] => yes
    
[stend_18u] => no
    
[stend_24r] => no
    
[stend_24u] => yes
    
[stend_36r] => yes
    
[stend_36u] => no
    
[stend_36o] => yes
    
[neobpl] => -15
    
[zaoch_uch] => yes
    
[akkredit] => -12
    
[present] => a
    
[reclama] => 600
    
[date] => 2003-06-11 13:33:47
)
$zrow[stend_4r]-:::$zrow[stend_4u]-:::$-

$zrow[stend_6r]-:::$zrow[stend_6u]-:::$-

$zrow[stend_9r]-:::$zrow[stend_9u]-:::$-

$zrow[stend_12r]-:::$zrow[stend_12u]-:::$-

$zrow[stend_18r]-:::$zrow[stend_18u]-:::$-

$zrow[stend_24r]-:::$zrow[stend_24u]-:::$-

$zrow[stend_36r]-:::$zrow[stend_36u]-:::$zrow[stend_36o]- 

Если кто не понял, то обяъсню, значение по ссылке не выводиться
« Последнее редактирование: 11 Июня 2003, 13:50:10 от AlieN »
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с ссылками ($$)
« Ответ #1 : 11 Июня 2003, 14:50:57 »
ссылка - это &$
а $$ - это переменная переменная.

банальнейшая задача для отладки.
вывести $var и посмотреть, что в ней, и чем отличается от того, что должно быть

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Проблема с ссылками ($$)
« Ответ #2 : 11 Июня 2003, 15:40:13 »
RomikChef
Ты можешь на примере пояснить а не бонально языком чесать?
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема с ссылками ($$)
« Ответ #3 : 11 Июня 2003, 16:10:54 »
если в переменной чего-то нету, то надо вывести на экран все те переменные, из которых получается ее значение.
И посмотреть - в какой момент значение пропадает.
Этот процесс называется "отладка", и обычно программисты делают его сами, а не ходят на форум, чтобы кто-то это сделал за них.

а вообще с массивами variable vriable не проходят.

этот код вызывает у меня неприятные ощущения.
пусть в нем кто-нибудь другой копается.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Проблема с ссылками ($$)
« Ответ #4 : 11 Июня 2003, 16:44:52 »
[moderated]

PS: админам, пожалуйста удалите все кроме первой мессаги

[AliMamed]не вижу причин модерировать чтолибо кроме содержания этого поста[/AliMamed]
« Последнее редактирование: 11 Июня 2003, 17:54:33 от AliMamed »
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Проблема с ссылками ($$)
« Ответ #5 : 11 Июня 2003, 20:07:33 »
AlieN
RomikChef прав, тут всё упирается именно в отладку.
Прокопался в этом коде где-то минут 20, так и не понял, почему не работает. Скорее, в качестве переменной с именем переменной нельзя использовать массивы вместе с ключами. Но решение есть и оно достаточно очевидное:
eval("fwrite($fp,"$$val1-".$$val1.":::");");
Только перед этим выше поменяй
$val1="zrow[stend_".$arr[$i]."r]";
и ему подобные на
$val1="zrow[$stend_".$arr[$i]."r]";
Поиграйся с этим и настрой, как надо. Просто у себя я тестировал не на fwrite, а на echo. У меня работало так:
eval("echo $val1;");
Выводились значения массива с такими ключами:
Цитировать
$zrow[\'stend_4r\']
$zrow[\'stend_6r\']
$zrow[\'stend_9r\']
$zrow[\'stend_12r\']
$zrow[\'stend_18r\']
$zrow[\'stend_24r\']
$zrow[\'stend_36r\']

С eval() главное не запутаться в эскейпинге спецсимволов!

PS: Правильнее будет обозначать ключи массивов как $array[\'key\'], а не $array[key]...
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Проблема с ссылками ($$)
« Ответ #6 : 14 Июня 2003, 13:10:18 »
Получилось вот так:

	
eval(
"\\$val1=\\$zrow[\\"stend_".$arr[$i]."r\\"];");
	
eval(
"\\$val2=\\$zrow[\\"stend_".$arr[$i]."u\\"];");
	
if(
$arr[$i]=="36"){eval("\\$val3=\\$zrow[\\"stend_".$arr[$i]."o\\"];");}

Странно почему через ссылки не работает
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Проблема с ссылками ($$)
« Ответ #7 : 14 Июня 2003, 14:26:14 »
AlieN
Я вроде прочитал в user comments\'ах, что с ключами массивов variable variables не работают :(
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28