请考虑以下代码.
class A {
public function __construct() {
}
}
class B extends A {
public $a = "a";
public $b = "b";
public $c = "c";
}
Run Code Online (Sandbox Code Playgroud)
如何从父类中获取B类的公共变量而不确切知道它们是什么?
class A {
public $d;
public function __construct() {
$reflect = new ReflectionClass($this);
$props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC);
var_dump($props);
}
}
class B extends A {
public $a = "a";
private $b = "b";
public $c = "c";
}
new B();
Run Code Online (Sandbox Code Playgroud)
输出(注意没有'b',但A的公共'd'在那里,提到它在A中声明):
array(3) {
[0]=>
&object(ReflectionProperty)#3 (2) {
["name"]=>
string(1) "a"
["class"]=>
string(1) "B"
}
[1]=>
&object(ReflectionProperty)#4 (2) {
["name"]=>
string(1) "c"
["class"]=>
string(1) "B"
}
[2]=>
&object(ReflectionProperty)#5 (2) {
["name"]=>
string(1) "d"
["class"]=>
string(1) "A"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7802 次 |
| 最近记录: |