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