Bug #71157 [Opn->Csd]: Using reserved words in magic methods

[email protected]
Newsgroups php.bugs
Message-ID <[email protected]>
Edit report at https://bugs.php.net/bug.php?id=71157&edit=1

 ID:                 71157
 Updated by:         [email protected]
 Reported by:        sergey dot karavay at gmail dot com
 Summary:            Using reserved words in magic methods
-Status:             Open
+Status:             Closed
 Type:               Bug
 Package:            *General Issues
 Operating System:   Windows 7 x64
 PHP Version:        5.5.30
-Assigned To:        
+Assigned To:        nikic
 Block user comment: N
 Private report:     N

 New Comment:

Supported in PHP 7.


Previous Comments:
------------------------------------------------------------------------
[2015-12-18 13:45:54] gregorv at web dot de

You shouldn't just copy some stuff, but give reference to the original poster...

------------------------------------------------------------------------
[2015-12-18 11:21:55] sergey dot karavay at gmail dot com

Description:
------------
Define __call and __callStatic methods for a class. Then try to call both static and non-static methods as a reserved keyword (for example, list).

Test script:
---------------
<?php
class Testing {

    public function scopeList() {
        echo "scopeList";
    }

    public function __call($method, $parameters) {
        if($method == "list") {
            $this->scopeList();
        }
    }

    public static function __callStatic($method, $parameters) {
	echo 1; die();
        $instance = new static;
        call_user_func_array([$instance, $method], $parameters);
    }
}

Testing::list(); // fails
Testing::{'list'}(); // works

$testing = new Testing();
$testing->list(); //works

Expected result:
----------------
The same behavior for both (both fails or both works).

Actual result:
--------------
Fails for static call, works for non-static.


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



--
Edit this bug report at https://bugs.php.net/bug.php?id=71157&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.