Portál AbcLinuxu, 12. května 2025 02:06
$name = '$pool'; $undefined = ''; foreach(...){ $undefined .= '...'; }
$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.
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ů.
$_ = 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í.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.