|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #39678 __set and __get not called where a class attribute is called statically
Submitted: 2006-11-29 10:03 UTC Modified: 2006-11-29 10:21 UTC
From: denis at edistar dot com Assigned:
Status: Not a bug Package: Scripting Engine problem
PHP Version: 5.2.0 OS: Linux
Private report: No CVE-ID: None
 [2006-11-29 10:03 UTC] denis at edistar dot com
Static class attributes cannot be accessed using __get and 
__set methods.

I think probably because they are resolved at compile time 
and not at runtime. If not, it is a bug. 

According to the documentation it should be possibile to 
access static class attributes using __get and __get.

Reproduce code:
class myClass {

        public function __set($name,$value) {
                echo "Setting: " . $name . " to " . $value."\n";
                self::$$name = $value;

        public function __get($name) {
                echo "Getting: " . $name . "\n";

myClass::$myStaticVar = "test";
echo myClass::$myStaticVar;

Expected result:
Setting: myStaticVar to test
Getting: myStaticVar

Actual result:
Fatal error: Access to undeclared static property:  


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2006-11-29 10:21 UTC]
This is expected behaviour.
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Thu Jun 17 18:01:28 2021 UTC