ID: 2971 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Bogus Bug Type: Other Operating System: Linux Suse 6.2 PHP Version: 3.0.11 New Comment:
In PHP 3 and 4 Objects are copied on assignment by default. In PHP 3 there is no easy way to get around this, in PHP 4 it is possible to return references from functions and methods. The situation will improve greatly in the upcoming PHP 5 with Zend Engine 2 Previous Comments: ------------------------------------------------------------------------ [1999-12-13 18:57:46] [EMAIL PROTECTED] Hi, I got a little problem with the following script. The member vars are not set properly. <?php class Option { function Option() { return $this; } } class Select { var $options; var $optionCount=0; function Select() { return $this; } function addOption() { $this->options[$this->optionCount++] = new Option(); echo 'select.addOption() called... optionCount ='.$this->optionCount.'<br>'; } function create() { echo 'select.create() called... optionCount ='.$this->optionCount.'<br>'; } } class Dialog { var $sel; function Dialog() { return $this; } function addSelect() { $this->sel = new Select(); return $this->sel; } function create() { $this->sel->create(); } } $d = new Dialog(); $a = $d->addSelect(); $a->addOption(); $a->addOption(); $d->create(); ?> this script puts out select.addOption() called... optionCount =1 select.addOption() called... optionCount =2 select.create() called... optionCount =0 but it should put out select.addOption() called... optionCount =1 select.addOption() called... optionCount =2 select.create() called... optionCount =2 The member var optionCount is'nt set well. Regards Olaf Japp ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=2971&edit=1