Hmm, would this then be a question for internals? On Wed, Feb 2, 2011 at 9:59 AM, Ashley Sheridan <ash@xxxxxxxxxxxxxxxxxxxx>wrote: > "Brad Lorge" <brad@xxxxxxxxxxxx> wrote: > > >Perhaps my question was not as succinct as it could have been. > > > >Basically, can you think of a means through which to detect whether or > >not a > >variable is currently present in multiple scopes. > > > >IE: > > > ><?php > > > >$bob = "fish"; > > > >echo is_multiscoped($bob); //False > > > >function something() > >{ > > echo is_multiscoped($fish); //False > > gloabal $bob; > > echo is_multiscoped($bob);//True > >} > > > >function getJam($&ref) > >{ > > echo is_multiscoped($ref);//True > >} > > > >$jim = "nothing special"; > > > >echo is_multiscoped($jim); //False > > > >getJam($jim); > > > > > >?> > > > >On Tue, Feb 1, 2011 at 7:12 PM, Tommy Pham <tommyhp2@xxxxxxxxx> wrote: > > > >> > -----Original Message----- > >> > From: Brad Lorge [mailto:brad@xxxxxxxxxxxx] > >> > Sent: Monday, January 31, 2011 9:53 PM > >> > To: php-general@xxxxxxxxxxxxx > >> > Subject: Detecting Multi-Scope Variables > >> > > >> > Hello All, > >> > > >> > I am new to the list so please be gentle :) > >> > > >> > I am working on a PHP framework and have run up against a > >functionality > >> > hurdle which I keep falling at. Basically, I have three mechanisms > >which > >> all > >> > function in a similar way and require this functionality: > >templating, > >> event > >> > handling and "action handling". Within the core code of the > >application, > >> as > >> > is common with many applications with plugin architecture, I pass a > >> number > >> > of parameters to functions which have hooked into a particular > >"event". > >> Part > >> > of the mechanism is that parameters can be passed by reference to > >allow > >> > for the listeners to make modifications. > >> > > >> > $username="bob";$account_type="ISV";$password="fishbum"; > >> > > >> > register_action_listener('process_user', function($username, > >> > $account_type, $password){$username.="." . $account_type;} // Or > >> > whatever > >> > > >> > call_action('process_user', &$username, &$account_type, > >&$password); > >> > //Result: $username == "bob.ISV" > >> > >> I think you meant to use [1]. > >> > >> > > >> > Now, what I am trying to do is establish a method to prevent the > >"hook" > >> > functions from making changes by reference without reference > >explicitly > >> > being passed to them by the calling code. > >> > > >> > >> Perhaps you should review [2] and see if your logic works with your > >> 'call_action'. > >> > >> > I have thought of a method which simply makes a copy of all the > >> parameters > >> > for each listener within call_action(), however what I would really > >love > >> is a > >> > function which returns whether or not the supplied variable is > >available > >> in > >> > multiple scopes or is in the original scope which it was > >initialized in. > >> > Does anyone know of a way to achieve this? > >> > > >> > Regards, > >> > Brad > >> > >> Happy coding, > >> Tommy > >> > >> [1] http://php.net/call_user_func > >> [2] http://php.net/references > >> > >> > >> > > In more low level languages like C and C++ you could look at the actual > value of the pointer, I'm not sure that that is available in php. > > > Thanks > Ash > http://www.ashleysheridan.co.uk > -- > Sent from my Android phone with K-9 Mail. Please excuse my brevity. >