Ken Kixmoeller -- reply to [EMAIL PROTECTED] wrote:
> OK, Jochem, I adapted your example and got it working. Thank you very much.
> 
> I am still playing with it to better understand. One thing I don't yet
> understand is the necessity for the getFoo()/getBar() "handshake,"
> especially the getbar() in the BAR class. That doesn't seem to serve any
> purpose. My adaptation us just a getDummy().
> 
> Do they just serve to pass the object by reference?

no - the whole piece of code was just a silly example to show you
that you can stuff an object into the property of another object.

objects are always by reference in php5 - in php4 you have to
use the 'reference' operator (the @ symbol) to make object be passed by 
reference.

your original question showed a new object being made in the constructor
of another object - that is fine but it seems a little pointless to
worry about referencing some 'global' [connection] object in each relevant
class when you seem to be creating a new object in each constructor.

try this example (I assume you use php5 - which I think you are because
you mentioned using the __construct() method which is a php5 only bit of
functionality):

<?php

class DBConn {
        private $userCnt = 0;
        function incrementUC() { $this->userCnt++; }
        function getUC() { return $this->userCnt;  }
}

class DOExample {
        private $dbconn;

        function __construct() {
                $this->dbconn = getDBConn();
                $this->dbconn->incrementUC();
        }
}

function getDBConn() {
        static $conn;

        if (!isset($conn))
                $conn = new DBConn();
        
        return $conn;
}

$a = new DOExample;
$c = new DOExample;
$b = new DOExample;

$d = getDBConn();
echo $d->getUC(),"\n";

?>

> 
> 
> Ken
> 
> --------------------------------------------------------------
> On Jan 26, 2007, at 5:47 PM, Jochem Maas wrote:
> 
> 
>>
>> class Foo
>> {
>>     private $var;
>>     function __construct() { $this->var = "foo"; }
>>     function getFoo() { return $this->var; }
>> }
>>
>> class Bar
>> {
>>     private $var;
>>     private $foo;
>>     function __construct() { $this->var = "bar"; $this->foo = new Foo; }
>>     function getBar() { return $this->var; }
>>     function speak() { echo "I am
>> ",$this->foo->getFoo(),$this->getBar(),"\n"; }
>> }
>>
>>
> 
> --PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to