to jest wszystko proste, np:
echo $cze;
to to samo co:
echo ${'cze'};
a zamiast ciągu 'cze' możesz użyć jakiejś zmiennej, np:
echo ${$zmienna};
jednak w tej postaci można ominąć klamerki i zostaje:
echo $$zmienna;
proste
tak samo kod:
$nazwa='cze';
$cze = Array('Marcin', 'Daniel', 'Magda', 'Paulina');
$tmp=$$nazwa;
echo $tmp[0];
echo $tmp[1];
echo $tmp[2];
można zapisać jako:
$nazwa='cze';
$cze = Array('Marcin', 'Daniel', 'Magda', 'Paulina');
echo ${$nazwa}[0];
echo ${$nazwa}[1];
echo ${$nazwa}[2];
co w/g mnie trochę czytelniej wygląda
co ciekawe w klamerkach można podać funkcję czy dowolną instrukcję byleby wyszedł z tego ciąg znaków nazwy zmiennej. np:
function zwroc(){
return 'cze';
}
$cze = Array('Marcin', 'Daniel', 'Magda', 'Paulina');
echo ${zwroc()}[0];
echo ${zwroc()}[1];
echo ${zwroc()}[2];
jednak jeśli potrzebujesz takich kombinacji to znaczy że coś generalnie namieszałeś w kodzie
// hmm, gdyby jeszcze dodać nawiasy na końcu to możnaby wywoływać funkcję o tej nazwie:
function zwroc(){
return 'cze';
}
function foo(){
return 'Wywołano funkcję foo <br />';
}
function bar(){
return 'Wywołano funkcję bar <br />';
}
$cze = Array('foo', 'bar');
echo ${zwroc()}[0]();
echo ${zwroc()}[1]();
i zrodził mi się pomysł na fajną metodę obfuskacji kodu ;P