|
Posted by Marek Kilimajer on 01/30/05 18:25
No
news.php.net wrote:
> <?
>
> 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;
$arr[0] and $a reference now the same variable
>
> $a = &new A("wsx");
by changing $a you also changed $arr[0]
> $arr[1] = &$a;
now $a, $arr[0] and $arr[1] reference the same variable, they just have
different names.
More:
http://sk.php.net/manual/en/language.variables.php
http://sk.php.net/manual/en/language.references.php
>
>
> //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.")";
> }
> ?>
>
Navigation:
[Reply to this message]
|