0
<?php
class S {
public $a = 'a';
protected $b = 'b';
private $c = 'c';
function get_last_child_public_properties() {
/* HOW TO */
}
}
class A extends S
{
public $d = 'd';
protected $e = 'e';
private $f = 'f';
}
class B extends A
{
public $g = 'public_g';
protected $h = 'h';
private $i = 'i';
public $j = 'public_j';
}
$b = new B();
$props = $b->get_last_child_public_properties();
/**
* I expect $props to be equals to :
* Array : ['g' => 'public_g', 'j' => 'public_j']
*/
親の公開プロパティが必要な場合は、次のコードを使用できます: '$ reflect = new ReflectionClass(__ CLASS__);あなたの関数 'get_last_child_public_properties()'の中で$ reflect-> GetProperties(ReflectionProperty :: IS_PUBLIC);を返します。 (結果を 'var_dump'します)。それ以外の場合は、各クラスを再帰的にチェックして親クラスが存在するかどうかを確認し、パブリックプロパティを取得しない場合(最後のクラスであり、何も継承しません)、その用途はわかりません。 – ctwheels