Re: Is this a bug?!!! I cna't believe! Sorry, if im wrong...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Well, unless I'm misstaken, the '=& new' should only be used once with every
class, so your code doesn't really make sense. The reason is that you are
trying to set the A to the new a, not $a to the new a.. Now, A couldn't get
changed I suppose, so therefore, $arr[1] will be a reference to $a, which is
still a reference to A.. Something like that.. I can only guess it'll work
as expected ("(wsx)(wsx)") if you change =&new to =new..

-- 
// DvDmanDT
MSN: dvdmandt¤hotmail.com
Mail: dvdmandt¤telia.com
"News.Php.Net" <mark@xxxxxx> skrev i meddelandet
news:20050130160659.939.qmail@xxxxxxxxxxxxxxxx
> <?
>
>  class A
>  {
>   var $name;
>   function A($str)
>   {
>    $this->name = $str;
>   }
>  }
>
>  $arr = array();
>
> //Put to array to objects of class A,
> // where their attribute A::a is assigned a different value
> //objects are assigned to an array by reference
>
> $a = &new A("qaz");
>  $arr[0] = &$a;
>
>  $a = &new A("wsx");
>  $arr[1] = &$a;
>
>
> //But watch the output!!!
> // It is "(qaz)(qaz)", which means that the attribute of a first
> // object assigned to array is outputted!!! WHY?!?!!!
>  foreach($arr as $a)
>  {
>   echo "(".$a->name.")";
>  }
> ?>

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux