aggregate_info

(PHP 4 >= 4.3.0)

aggregate_infoRécupère les informations d'agrégation pour un objet donné

Description

array aggregate_info ( object $object )

Récupère les informations d'agrégation pour un objet donné.

Liste de paramètres

object

Valeurs de retour

Retourne un tableau associatif avec les méthodes et propriétés de chaque classe qui a été agrégée pour former l'objet object. La clé du tableau principal est le nom de la classe agrégée.

Exemples

Exemple #1 Exemple avec 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++) {
			// coupe en tranches
		}
	}
}

class Dicer {
	var $vegetable;
	var $rotation_angle = 90;   // degrés

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

	function dice_it($num_cuts) 
	{
		echo "Couper dans une direction\n";
		for ($i=0; $i < $num_cuts; $i++) {
			// coupe
		}
		$this->rotate($this->rotation_angle);
		echo "Couper dans une seconde direction\n";
		for ($i=0; $i < $num_cuts; $i++) {
			// coupe encore
		}
	}

	function rotate($deg)
	{
		echo "Maintenant tourne {$this->vegetable} {$deg} degrés\n";
	}

	function _secret_super_dicing($num_cuts) 
	{
		// tellement secret que nous ne pouvons vous montrer ;-)
	}
}

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

L'exemple ci-dessus va afficher :

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

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

        )

)
Comme vous pouvez le voir, toutes les méthodes et propriétés de la classe Dicer ont été agrégées dans notre nouvel objet, à l'exception de la classe constructeur et de la méthode privée _secret_super_dicing()

Voir aussi

LoadingChargement en cours