1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10: 11:
12:
13:
14:
15: 16: 17: 18: 19:
20: class ParameterReflection extends ReflectionParameter
21: {
22:
23: private $function;
24:
25:
26: public function __construct($function, $parameter)
27: {
28: parent::__construct($this->function = $function, $parameter);
29: }
30:
31:
32:
33: 34: 35:
36: public function getClass()
37: {
38: return ($ref = parent::getClass()) ? new ClassReflection($ref->getName()) : NULL;
39: }
40:
41:
42:
43: 44: 45:
46: public function getDeclaringClass()
47: {
48: return ($ref = parent::getDeclaringClass()) ? new ClassReflection($ref->getName()) : NULL;
49: }
50:
51:
52:
53: 54: 55:
56: public function getDeclaringFunction()
57: {
58: return is_array($this->function) ? new MethodReflection($this->function[0], $this->function[1]) : new FunctionReflection($this->function);
59: }
60:
61:
62:
63:
64:
65:
66:
67: 68: 69:
70: public function getReflection()
71: {
72: return new ClassReflection($this);
73: }
74:
75:
76:
77: public function __call($name, $args)
78: {
79: return ObjectMixin::call($this, $name, $args);
80: }
81:
82:
83:
84: public function &__get($name)
85: {
86: return ObjectMixin::get($this, $name);
87: }
88:
89:
90:
91: public function __set($name, $value)
92: {
93: return ObjectMixin::set($this, $name, $value);
94: }
95:
96:
97:
98: public function __isset($name)
99: {
100: return ObjectMixin::has($this, $name);
101: }
102:
103:
104:
105: public function __unset($name)
106: {
107: throw new MemberAccessException("Cannot unset the property {$this->reflection->name}::\$$name.");
108: }
109:
110: }
111: