RE: Detecting Multi-Scope Variables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux