#2971 [Opn->Bgs]: Misbehaved instance variables in classes

From: Date: Tue, 01 Oct 2002 15:32:43 +0000
Subject: #2971 [Opn->Bgs]: Misbehaved instance variables in classes
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-20941@lists.php.net to get a copy of this message
ID: 2971 Updated by: hholzgra@php.net Reported By: ojapp@skip-consulting.de -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] ojapp@skip-consulting.de 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

« previous php.bugs (#20941) next »