オブジェクトの集約関数
PHP Manual

aggregate_info

(PHP 4 >= 4.3.0)

aggregate_info 指定したオブジェクトの集約情報を取得する

説明

array aggregate_info ( object $object )

object で指定したオブジェクトについての 集約情報を取得します。

パラメータ

object

返り値

指定したオブジェクトに関する集約の情報を返します。返される値は、 メソッドとプロパティの配列を要素とする連想配列形式となります。 連想配列のキーは、集約されたクラス名となります。

例1 aggregate_info() の使用例

<?php

class Slicer {
    var 
$vegetable;

    function 
Slicer($vegetable
    {
        
$this->vegetable $vegetable;
    }

    function 
slice_it($num_cuts
    {
        echo 
"Doing some simple slicing\n";
        for (
$i=0$i $num_cuts$i++) {
            
// 何らかのスライス処理
        
}
    }
}

class 
Dicer {
    var 
$vegetable;
    var 
$rotation_angle 90;   // 角度

    
function Dicer($vegetable
    {
        
$this->vegetable $vegetable;
    }

    function 
dice_it($num_cuts
    {
        echo 
"最初のカットを行います\n";
        for (
$i=0$i $num_cuts$i++) {
            
// 何らかのカット処理
        
}
        
$this->rotate($this->rotation_angle);
        echo 
"別の向きのカットを行います\n";
        for (
$i=0$i $num_cuts$i++) {
            
// さらに何らかのカット処理
        
}
    }

    function 
rotate($deg
    {
        echo 
"{$this->vegetable} を {$deg} 度回転します\n";
    }

    function 
_secret_super_dicing($num_cuts
    {
        
// 企業秘密なので、ナイショです (^o^)
    
}
}

$obj = new Slicer('タマネギ');
aggregate($obj'Dicer');
print_r(aggregate_info($obj));
?>

上の例の出力は以下となります。

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)
ごらんのとおり、Dicer クラスのすべての プロパティとメソッドが新しいオブジェクトに集約されました。 ただし、クラスのコンストラクタと _secret_super_dicing() メソッドは集約されていません。

参考


オブジェクトの集約関数
PHP Manual