Portál AbcLinuxu, 12. května 2025 02:06

Dotaz: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP

5.11.2013 13:28 Marty
Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Přečteno: 623×
Odpovědět | Admin
Ahoj, poradí prosím někdo jak nastavit název proměnné $undefined názvem uleženým v proměnné $name?
$name = '$pool';

$undefined = '';
foreach(...){
$undefined .= '...';
}
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

rADOn avatar 5.11.2013 14:20 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Za mých mladých péhápéčkových let to bylo tak: $undefined .= $$name (každý $ přidá další lookup symbolu).

Ale budiž varován že to je obrat kterým si můžes založit nehezkou díru. Pokud tam mermomocí potřebuješ indirekci, tak to udělej jako lookup v asociativním poli.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
rADOn avatar 5.11.2013 14:23 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
BTW nazývat existující proměnnou 'undefined' je docela dobrý způsob jak si pojistit že další kdo ten kód bude po tobě číst tě přijde v noci navštívit s baseballovou pálkou…
"2^24 comments ought to be enough for anyone" -- CmdrTaco
Tarmaq avatar 5.11.2013 14:50 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
k cemu to ma byt dobre? Nenapada me jediny priklad, kdy by bylo uzitecne si dynamicky nastavovat nazev promenne..
Don't panic!
Goheeca avatar 6.11.2013 12:00 Goheeca | skóre: 7
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Mně to nápadně připomíná speciální operátor progv v Common Lispu, ale ještě jsem ho nepoužil a to jsem si v tom jazyce hrál poměrně dost. Prej to má být dobrý při psaní interpretů embedded jazyků.
6.11.2013 11:03 Mike
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdysi jsem nad tim stravil hodne casu a nekde jsem objevil podobnou pomucku:

${'promenna'.$var} = "cokoliv";
Goheeca avatar 6.11.2013 13:07 Goheeca | skóre: 7
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejbližší co jsem zatím vymyslel, je následující:
$_ = null;

function magic($name) {
  global $_;
  $_ = $name;
}

$foo = 'baz';
$bar = 'quux';


for($i=0;$i<10;$i++) {
  if($i%2==0) magic('foo');
  else magic('bar');
  $$_ .= $i;
}

echo "$foo,$bar";
Je škoda, že nefunguje něco jako:
function magic($name) {
  global $_,$$name;
  $_ = &$$name;
}
Omezuje to docela možnosti metaprogramování.
Jinak teď neřeším, že to při běžném lepení kódu je zavrženíhodný styl psaní.
Josef Kufner avatar 6.11.2013 15:26 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Nejdůležitější požadavek na kód je, aby byl čitelný. Tímhle vyrábíš docela nechutnou motanici.

Podívej se na magické metody u objektů. S těmi se dá kouzlit hodně a kód většinou zůstává docela přehledný.
Hello world ! Segmentation fault (core dumped)
6.11.2013 15:32 Kozzi
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Ano, to je pravda sam je hodne vyuzivam, a docela mi chybi v php pretezovani operatoru to by bylo jeste ultra mega cool :), ale na druhou stranu to prinasi dalsi radu problemu a v nekterych pripadech to muze zhorsovat i prehlednost kodu, teda spis nekomu zamezit pochopeni toho co se doopravdy deje.
6.11.2013 15:12 Kozzi
Rozbalit Rozbalit vše Re: Jak pojmenovat proměnnou názvem z jiné proměnné v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co presne potrebujes udelat, muzes to trochu rozvest?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.