PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

aggregate_info

(PHP 4 >= 4.3.0)

aggregate_info Gets aggregation information for a given object

Description

array aggregate_info ( object $object )

Gets the aggregation information for the given object.

Parameters

object

Return Values

Returns the aggregation information as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

Examples

Example #1 Using 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++) {
            
// 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));
?>

The above example will 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

PHP Manual