On Fri, 11 Oct 2002, Rasmus Lerdorf wrote:

> Sascha, would you mind explaining the reasoning for changing this
> behaviour?  Whether it is documented or not, I'd like to hear a technical
> reason for not allowing session_register() to act on global variables when
> register_globals is off.  I still don't see it.  All I see is
> inconsistency here.

    PHP 4.2 and earlier versions behave inconsistenly with regard
    to treating global variables as source of session variables.
    They work exactly like this:

    1st request

        session_register('c');
        $c = 3; # Updates session variable

    2nd request

        session_start();
        $c = 5; # Does NOT update session variable

    That is clearly broken under the assumption that
    session_register() should act on global variables.  It
    clearly does not (always).  A user should be able to access a
    session var using globals either all the time or never.  If
    it is 'sometimes', valid code will cause unexpected results
    (imagine in the above example that $c is a global,
    non-session variable and that $_SESSION["c"] is not set
    during the first request).

    From my point of view, it is a fallacy to ask for prolonging
    this misfeature of earlier PHP 4.2 releases.  It absolutely
    had to be addressed.

    - Sascha


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to