Hello,

I have a problem. Here is code:

<?

class Obj1 {

 var $p1;
 var $p2;

 function Obj1 ($p1, $p2) {
  $this->p1 = $p1;
  $this->p2 = $p2;
 }

 function getP1() {
  return $this->p1;
 }

 function setP1($p1) {
  $this->p1 = $p1;
 }

 function getP2() {
  return $this->p2;
 }

 function setP2($p2) {
  $this->p2 = $p2;
 }

 function toString() {
  return "p1=" . $this->p1 . "; p2=" . $this->p2;
 }

}

class Obj2 {

 var $p1;
 var $p2;

 var $obj1;

 function Obj2 () {
 }

 function init($p1, $p2, $obj1) {
  $this->p1 = $p1;
  $this->p2 = $p2;
  $this->obj1 = $obj1;
 }


 function getP1() {
  return $this->p1;
 }

 function setP1($p1) {
  $this->p1 = $p1;
 }

 function getP2() {
  return $this->p2;
 }

 function setP2($p2) {
  $this->p2 = $p2;
 }

 function getObj1() {
  return $this->obj1;
 }

 function setObj1($obj1) {
  $this->obj1 = $obj1;
 }

 function toString() {
  return "p1=" . $this->p1 . "; p2=" . $this->p2 . "; obj1=" .
$this->obj1->toString();
 }

}

$objs[] = new Obj1("jurek", "mizgiert");
$objs[] = new Obj1("marta", "wegner");
$objs[] = new Obj1("tomasz", "zdybicki");
$objs[] = new Obj1("artur", "milczarek");

$obj2 = new Obj2();
$tmp = Array();
for ($i = 0; $i < count($objs); $i++) {
 $obj2->init($i, $i, $objs[$i]);
 $tmp[] = $obj2;
 print ($i+1) . ". " . $obj2->toString() . " | ";

 $o = $tmp[$i];
 $o2 = $o->getObj1();
 print ($i+1) . ". p1=" . $o->getP1() . "; p2=" . $o->getP2() . "; obj1=p1="
.  $o2->getP1() . "; p2=" . $o2->getP2() . "<br>";
}

print "<hr>";
print count($tmp);
print "<hr>";

for ($i = 0; $i < count($tmp); $i++) {
 $o = $tmp[$i];
 $o2 = $o->getObj1();
 print ($i+1) . ". p1=" . $o->getP1() . "; p2=" . $o->getP2() . "; obj1=p1="
.  $o2->getP1() . "; p2=" . $o2->getP2() . "<br>";
}

?>


Class Obj1 have 2 fields with set-get methods and constructor which inits
fields. Method toString() return string representation of fields...

Second class Obj2 have 3 fields from which  the obj1 will be type Obj1.
Method init inits fields of class. Method toString make the same action like
in Obj1

Look at code near the classes.  Run this give this effect:

1. p1=0; p2=0; obj1=p1=jurek; p2=mizgiert | 1. p1=0; p2=0; obj1=p1=jurek;
p2=mizgiert
2. p1=1; p2=1; obj1=p1=marta; p2=wegner | 2. p1=1; p2=1; obj1=p1=marta;
p2=wegner
3. p1=2; p2=2; obj1=p1=tomasz; p2=zdybicki | 3. p1=2; p2=2; obj1=p1=tomasz;
p2=zdybicki
4. p1=3; p2=3; obj1=p1=artur; p2=milczarek | 4. p1=3; p2=3; obj1=p1=artur;
p2=milczarek

----------------------------------------------------------------------------
----
4
----------------------------------------------------------------------------
----
1. p1=0; p2=0; obj1=p1=jurek; p2=mizgiert
2. p1=1; p2=1; obj1=p1=artur; p2=milczarek
3. p1=2; p2=2; obj1=p1=artur; p2=milczarek
4. p1=3; p2=3; obj1=p1=artur; p2=milczarek


This is wrong result because effect before the <hr> myst be the same after
<hr>.
When I change method toString() in class Obj2 to return ""; it will be ok
(look below). What is going on? Who knows?

1. | 1. p1=0; p2=0; obj1=p1=jurek; p2=mizgiert
2. | 2. p1=1; p2=1; obj1=p1=marta; p2=wegner
3. | 3. p1=2; p2=2; obj1=p1=tomasz; p2=zdybicki
4. | 4. p1=3; p2=3; obj1=p1=artur; p2=milczarek

----------------------------------------------------------------------------
----
4
----------------------------------------------------------------------------
----
1. p1=0; p2=0; obj1=p1=jurek; p2=mizgiert
2. p1=1; p2=1; obj1=p1=marta; p2=wegner
3. p1=2; p2=2; obj1=p1=tomasz; p2=zdybicki
4. p1=3; p2=3; obj1=p1=artur; p2=milczarek



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

Reply via email to