Változó értéke unset()-ben

Sziasztok!

Van egy probléma amit nem tudok megoldani. A feladat az lenne, hogy egy paraméterként átadott tömb kulcsát megszüntessem. A kód valahogy így nézne ki:

public static function remove(array $keys)
{
$name = '$GLOBALS["_REQUEST"]';

foreach($keys as $key) {
$name .= '["'.$key.'"]';
}

// Pl.: $name = '$GLOBALS["_GET"]["foo"]["bar"]';

unset($name);
}

A probléma viszont, hogy ebben az esetben az unset() függvény a $name változót szünteti meg, nem pedig annak az értékétben lévő tömböt. Van valakinek ötlete a probléma megoldására?

Hozzászólások

Ha


$name = '$GLOBALS["_GET"]["foo"]["bar"]';

akkor


$x = $GLOBALS["_GET"]["foo"]["bar"];

ugyanaz, mint


$x = $$name;

Tehat, probalj ki esetleg egy


unset($$name);

valtoztatot, hatha...

egyébként ez mivel jobb mint az unset($GLOBALS["_GET"]["foo"]["bar"][...]); magában?

Semmivel, az eredmény ugyanaz mind a kettő esetén. Csak van egy request-et kezelő osztályunk set(), get(), has() metódusokkal. Mindenhol ezeket a metódushívásokat használjuk az egyszerű értékátadás helyett. Ebből az osztályból egyedül már csak a remove() metódus hiányzik, hogy teljes legyen. Jelenleg ahogy te is írtad, az unset($GLOBALS[...]) módszerrel oldjuk meg a tömb elemek megszüntetését, de szebb és áttekinthetőbb lenne a kód, ha erre is a request osztályunkat tudnánk használni.