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

Reply via email to