fruffl icon

Whats wrong?

fruffl | 01/17/13 07:05:16 PM UTC | 0 ⭐ | 233 👁️ | Never ⏰ | []
PHP |

2.06 KB

|

None

|

0 👍

/

0 👎

<?PHP
    class fu
    {
        protected $__defaultConfig = [];
        public function __construct()
        {
            $class = get_called_class();
            $props = [];
 
            do
            {
                foreach((new \ReflectionClass($class))->getDefaultProperties() as $property => $value) // <---
                {
                    if(!in_array($property, ['__autoConfig', '__defaultConfig']))
                        continue;
                    
                    var_dump([$class.'::'.$property => $value]);
                }
            }
            while($class = get_parent_class($class));
 
            /*
            // same...
            foreach($this->parents() as $class)
            {
                foreach((new \ReflectionClass($class))->getDefaultProperties() as $property => $value)
                {
                    if(!in_array($property, ['__autoConfig', '__defaultConfig']))
                        continue;
                    
                    var_dump([$class.'::'.$property => $value]);
                }
            }
            */
        }
    }
 
    class baz extends fu
    {
        protected $__defaultConfig = [];
    }
?>
 
 
// actual
 
array(1) {
  ["fu::__defaultConfig"]=>
  array(7) {
    ["scheme"]=>
    string(4) "http"
    ["query"]=>
    NULL
    ["fragment"]=>
    NULL
    ["protocol"]=>
    NULL
    ["auth"]=>
    NULL
    ["version"]=>
    string(3) "1.1"
    ["headers"]=>
    array(0) {
    }
  }
}
array(1) {
  ["baz::__defaultConfig"]=>
  array(7) {
    ["scheme"]=>
    string(4) "http"
    ["query"]=>
    NULL
    ["fragment"]=>
    NULL
    ["protocol"]=>
    NULL
    ["auth"]=>
    NULL
    ["version"]=>
    string(3) "1.1"
    ["headers"]=>
    array(0) {
    }
  }
}
 
// expected
 
array(1) {
  ["fu::__defaultConfig"]=>
  array(7) {
    ["scheme"]=>
    string(4) "http"
    ["query"]=>
    NULL
    ["fragment"]=>
    NULL
    ["protocol"]=>
    NULL
    ["auth"]=>
    NULL
    ["version"]=>
    string(3) "1.1"
    ["headers"]=>
    array(0) {
    }
  }
}
array(1) {
  ["baz::__defaultConfig"]=>
  array(7) {
    ["scheme"]=>
    string(4) "tcp"
    ["host"]=>
    string(9) "localhost"
    ["port"]=>
    NULL
    ["username"]=>
    NULL
    ["password"]=>
    NULL
    ["path"]=>
    NULL
    ["body"]=>
    array(0) {
    }
  }
}

Comments