Re: Unexpected behavior for ::

From: Date: Mon, 12 Dec 2011 14:39:23 +0000
Subject: Re: Unexpected behavior for ::
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-56890@lists.php.net to get a copy of this message
Hello, Thanks for the info, as pointed out by Sean Coates this is sort of documented, I've submited a documentation (problem/)bug report. https://bugs.php.net/bug.php?id=60499 E_STRICT was disabled since a large part of the application was moved to php 5 only last year and, even if i was aware that it is possible to call non-static methods in a static way, i didn't expect this to work. On 12/12/2011 16:12, Etienne Kneuss wrote:
Hi, On Mon, Dec 12, 2011 at 14:35, Bogdan Bezuz<bogdan.bezuz@emag.ro> wrote:
Hello, I'm not sure if this is the desired behavior and i don't want to submit a bogus bug report. class A {
    public function f1()
    {
        var_dump($this->_b);
    }
} class B {
    public $_b = 'stuff';
    public function f2()
    {
        A::f1();
    }
} $b = new B(); $b->f2(); At first i would expect an error since A was not instantiated, at most i would expect to return NULL but not 'stuff'. Is this a bug ?
Not really, it's a BC compatibility that we had to drag since PHP4. If you enable E_STRICT, it should output a warning saying something like "importing $this from invalid context". It is/was scheduled for cleanup in the next major version. Best,
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
-- *Bezuz Bogdan* *Programare Site* +40 721 269 934 bogdan.bezuz@emag.ro <mailto:bogdan.bezuz@emag.ro> logo_emag Dante International SA Tel/Fax: +40 21 200 52 00/25 Swan Office Park, Windsor Building Şos. Bucureşti Nord nr. 15-23 Bucureşti

« previous php.internals (#56890) next »