Re: Detecting Multi-Scope Variables

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

 



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

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