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