PHP マニュアル
前のページ |  | 次のページ

# aggregation_info

(PHP 4 >= 4.2.0)

aggregation_info -- returns an associative array of the methods and properties from each class that has been aggregated to the object.

## Description

array aggregation_info ( object object)

Will return the aggretaion information for a particular object as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

For example the code below

例 1Using aggregation_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++) {
                // do some slicing
            }
        }
    }

    class Dicer {
        var $vegetable;
        var $rotation_angle = 90;   // degrees

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

        function dice_it($num_cuts) {
            echo "Cutting in one direction\n";
            for ($i=0; $i < $num_cuts; $i++) {
                // do some cutting
            }
            $this->rotate($this->rotation_angle);
            echo "Cutting in a second direction\n";
            for ($i=0; $i < $num_cuts; $i++) {
                // do some more cutting
            }
        }

        function rotate($deg) {
            echo "Now rotating {$this->vegetable} {$deg} degrees\n";
        }

        function _secret_super_dicing($num_cuts) {
            // so secret we cannot show you ;-)
        }
    }

    $obj = new Slicer('onion');
    aggregate($obj, 'Dicer');
    print_r(aggregate_info($obj));
    ?>

Will produce the output

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

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

            )

    )

As you can see, all properties and methods of the Dicer class have been aggregated into our new object, with the exception of the class constructor and the method `_secret_super_dicing`

See also aggregate(), aggregate_methods(), aggregate_methods_by_list(), aggregate_methods_by_regexp(), aggregate_properties(), aggregate_properties_by_list(), aggregate_properties_by_regexp(), deaggregate()

前のページ | ホーム | 次のページ
aggregate | 上に戻る | deaggregate