Bug #66739 [Com]: strange behavior

From: Date: Wed, 09 Jul 2014 14:12:20 +0000
Subject: Bug #66739 [Com]: strange behavior
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-186545@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=66739&edit=1

 ID:                 66739
 Comment by:         arjen at react dot com
 Reported by:        temenb at gmail dot com
 Summary:            strange behavior
 Status:             Open
 Type:               Bug
 Package:            Scripting Engine problem
 Operating System:   ubuntu
 PHP Version:        5.4Git-2014-02-18 (Git)
 Block user comment: N
 Private report:     N

 New Comment:

phpng is listed on 3v4l.org as php 5.7, which is compiled from the phpng branch.

In this branch, it returns AAAAAAAA. All other versions return AAAABAAA


Previous Comments:
------------------------------------------------------------------------
[2014-06-27 12:42:19] pajoye@php.net

@ arjen at react dot com
phpng is an independent feature branch.

We have branches like for 5.4, 5.5, 5.6 or master. Which one do you use?

------------------------------------------------------------------------
[2014-06-27 12:36:24] arjen at react dot com

Exact output/warnings @ http://3v4l.org/ek1KG

Behaviour changed in 5.7 (phpng).

------------------------------------------------------------------------
[2014-02-19 07:36:02] temenb at gmail dot com

Yes. It's true. not obvious. But php allows to call function this way

------------------------------------------------------------------------
[2014-02-19 02:53:53] coolwust at gmail dot com

B::b1();//b1 is object method

$b->b2();//b2 is static method

I think the syntax you calling the method is not correct

------------------------------------------------------------------------
[2014-02-18 22:45:16] temenb at gmail dot com

Description:
------------
static::foo() in the method A::a1() in some cases calls method B::foo()

It is not late static bindings,  B doesn't extend A

Test script:
---------------
<?php

class A
{
    public function a1()
    {             
        static::foo();
    }

    static public function a2()
    {       
        static::foo();
    }
    
    static public function foo()
    {
        echo 'A';
    }
}

class B
{
    public function b1()
    {
        A::a1();
        A::a2();
    }
    
    static public function b2()
    {
        A::a1();
        A::a2();
    }
    
    static public function foo()
    {    
        echo 'B';    
    }
}

B::b1();//A
B::b2();//A

$b = new B;
$b->b1();//B
$b->b2();//A



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=66739&edit=1


Thread (7 messages)

« previous php.bugs (#186545) next »