Re: how to count objects instances

From: Date: Tue, 24 Aug 2004 11:50:30 +0000
Subject: Re: how to count objects instances
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-194562@lists.php.net to get a copy of this message
Robert Cummings wrote:
On Mon, 2004-08-23 at 20:54, John Holmes wrote:
tyler@carbon.homelinux.com wrote:
hi, What is best method(if it's possible) to count how many times an object is instanced in one time script call? I means that if i have a class named "Test", i what to know how many times she's called, how many copies exists etc. The idea is for monitoring in the way to optimizing the code. The method get_declared_classes() only shows only the classes included/required.
There's no predefined variable or method for determining this, that I'm aware of, short of counting how many "new Test" lines you have. You could write a wrapper class for Test that kept count of the instances and returned a new object upon request...
In PHP5: <?php class Foo {
    static $instances = 0;
    function __construct()
    {
        Foo::$instances++;     }
    function __destruct()
    {
        Foo::$instances--;
    }
    static function getNumInstances()
    {
        return Foo::$instances;
    }
} $foo = new Foo(); $fee = new Foo(); echo 'Count: '.Foo::getNumInstances()."\n"; unset( $foo ); echo 'Count: '.Foo::getNumInstances()."\n"; Add this to the class as well:
public function __clone () { self::$instances++; // You might as well use the "self" operator } -- Daniel Schierbeck

« previous php.general (#194562) next »