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 getClassName()
47: {
48: return ($tmp = String::match($this, '#>\s+([a-z0-9_\\\\]+)#i')) ? $tmp[1] : NULL;
49: }
50:
51:
52:
53: 54: 55:
56: public function getDeclaringClass()
57: {
58: return ($ref = parent::getDeclaringClass()) ? new ClassReflection($ref->getName()) : NULL;
59: }
60:
61:
62:
63: 64: 65:
66: public function getDeclaringFunction()
67: {
68: return is_array($this->function)
69: ? new MethodReflection($this->function[0], $this->function[1])
70: : new FunctionReflection($this->function);
71: }
72:
73:
74:
75:
76:
77:
78:
79: 80: 81:
82: public function getReflection()
83: {
84: return new ClassReflection($this);
85: }
86:
87:
88:
89: public function __call($name, $args)
90: {
91: return ObjectMixin::call($this, $name, $args);
92: }
93:
94:
95:
96: public function &__get($name)
97: {
98: return ObjectMixin::get($this, $name);
99: }
100:
101:
102:
103: public function __set($name, $value)
104: {
105: return ObjectMixin::set($this, $name, $value);
106: }
107:
108:
109:
110: public function __isset($name)
111: {
112: return ObjectMixin::has($this, $name);
113: }
114:
115:
116:
117: public function __unset($name)
118: {
119: ObjectMixin::remove($this, $name);
120: }
121:
122: }
123: