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 > > >