Re: Is it possible to get the variable name from the HashTable structure?

From: Date: Sun, 04 May 2014 16:28:08 +0000
Subject: Re: Is it possible to get the variable name from the HashTable structure?
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-73876@lists.php.net to get a copy of this message
Hi, > On 4 May, 2014, at 11:54 pm, Aaron Lewis <the.warl0ck.1989@gmail.com> wrote: > > FWD I forgot to CC the list ;-( > > ---------- Forwarded message ---------- > > > Here's what I want, > > If a user runs code like this, and $_GET['MH'] happens to be > undefined, I want to know both '_GET' and 'MH': I suppose you could compare the hash table against the few super globals there are :) > > if ($_GET['MH'] == 'dog') > { > do-something > } > > But so far I can only get the 'MH' part ( I checked the 'Undefined > index' part in a zend function, can't remember the exact name ) > > > > On Sun, May 4, 2014 at 11:46 PM, Johannes Schlüter > <johannes@schlueters.de> wrote: >> On Sun, 2014-05-04 at 16:13 +0100, Joe Watkins wrote: >>>> On Sun, 2014-05-04 at 20:21 +0800, Aaron Lewis wrote: >>>> Hi, >>>> >>>> So PHP uses HashTable to store variables like $_POST, >>>> >>>> From a HashTable structure, can I get the array name? >> >> No, a zval (which might point to a hash tale) doesn't refer to a name. >> For one there in 99.99% is no need but it would cost memory(and CPU >> cycles to maintain) and then there miht e multiple nae (references) or >> none (temporaries etc.) >> >> If you know the parent such hacks like >> >>> https://gist.github.com/krakjoe/50603be7ffb1ae6e9156 >> >> might work, but even this solution is flawed: The easy thing it doesn't >> support is references, it should return an array of all names. It won't >> work for complex things, though. >> >> If you need such a functionality I'd suggest to take a step back and >> think what you actually want to do ... usually there is a better >> solution. >> >> johannes > > > > -- > Best Regards, > Aaron Lewis - PGP: 0x13714D33 - http://pgp.mit.edu/ > Finger Print: 9F67 391B B770 8FF6 99DC D92D 87F6 2602 1371 4D33 > > > -- > Best Regards, > Aaron Lewis - PGP: 0x13714D33 - http://pgp.mit.edu/ > Finger Print: 9F67 391B B770 8FF6 99DC D92D 87F6 2602 1371 4D33 > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php >

« previous php.internals (#73876) next »